Amicable numbers are two different numbers so related that the sum of the proper divisors of each is equal to the other number. When it is required to check if two numbers are amicable numbers, a method can be defined that iterates over the number, and uses the modulus operator. Another method is defined that calls the previously defined function to determine if two numbers are amicable or not.
Below is the demonstration of the same −
Example
import math def divided_sum_val(my_val) : res = 0 for i in range(2, int(math.sqrt(my_val)) + 1) : if (my_val % i == 0) : if (i == int(my_val / i)) : res = res + i else : res = res + (i + int(my_val / i)) return (res + 1) def check_amicable(x, y) : if (divided_sum_val(x) != y) : return False return (divided_sum_val(y) == x) first_num = 220 second_num = 288 print("The numbers are :") print(first_num) print(second_num) if (check_amicable(first_num, second_num)) : print ("The given numbers are amicable in nature") else : print ("The given numbers are not amicable in nature")
Output
The numbers are : 220 288 The given numbers are not amicable in nature
Explanation
A method named ‘divided_sum_val’ is defined that takes an integer has parameter.
It uses a ‘for’ loop to iterate through the value and checks the divisibility of the number.
If the iterator is equal to the value divided by the iterator, it is incremented by the iterator.
Otherwise, the entire divided number is added.
Another method named ‘check_amicable’ is defined, that takes two numbers.
It calls the ‘divided_sum_val’ and returns ‘True’ or ‘False’ depending on the computed value.
The two numbers are defined, and are displayed on the console.
The method is called by passing these two numbers.
Based on the output, relevant message is displayed on the console.