Learn Programming and technology with ease @ developerpublish.com

HomePythonPython Program to Check If Two Numbers are Amicable Numbers or Not

# Python Program to Check If Two Numbers are Amicable Numbers or Not

This Python program checks if two numbers are amicable numbers or not. Amicable numbers are pairs of numbers where the sum of the proper divisors of each number equals the other number.

Amicable numbers are a pair of numbers where the sum of the proper divisors of one number is equal to the other number, and vice versa. In other words, the aliquot sum (the sum of proper divisors excluding the number itself) of one number equals the other number.

## Problem Statement

Write a Python program to determine if two numbers are amicable numbers or not. An amicable number is a pair of numbers (num1, num2) where the sum of the proper divisors of num1 equals num2, and the sum of the proper divisors of num2 equals num1.

## Python Program to Check If Two Numbers are Amicable Numbers or Not

```def get_proper_divisors(n):
divisors = []
for i in range(1, n):
if n % i == 0:
divisors.append(i)
return divisors

def are_amicable_numbers(num1, num2):
divisors_num1 = get_proper_divisors(num1)
sum_num1 = sum(divisors_num1)

divisors_num2 = get_proper_divisors(num2)
sum_num2 = sum(divisors_num2)

if sum_num1 == num2 and sum_num2 == num1:
return True
else:
return False

# Example usage
num1 = int(input("Enter the first number: "))
num2 = int(input("Enter the second number: "))

if are_amicable_numbers(num1, num2):
print(f"{num1} and {num2} are amicable numbers.")
else:
print(f"{num1} and {num2} are not amicable numbers.")
```

## How it Works

1. The program defines a function `get_proper_divisors(n)` that takes a number `n` as input and returns a list of its proper divisors. It iterates from 1 to `n-1` and checks if `n` is divisible by the current number. If it is, the current number is added to the list of divisors.
2. The program defines another function `are_amicable_numbers(num1, num2)` that takes two numbers `num1` and `num2` as input. Inside this function:
• It calls the `get_proper_divisors()` function for `num1` and `num2` to get their respective lists of proper divisors.
• It calculates the sum of the proper divisors for `num1` and assigns it to `sum_num1`, and calculates the sum of the proper divisors for `num2` and assigns it to `sum_num2`.
• It checks if `sum_num1` is equal to `num2` and `sum_num2` is equal to `num1`. If both conditions are true, it returns `True`, indicating that the numbers are amicable. Otherwise, it returns `False`.
3. The program prompts the user to enter two numbers, `num1` and `num2`, using the `input()` function.
4. It calls the `are_amicable_numbers()` function with `num1` and `num2` as arguments to check if they are amicable numbers.
5. If the returned value is `True`, the program displays a message stating that the numbers are amicable. Otherwise, it displays a message stating that the numbers are not amicable.
6. The program execution ends.

To check if two numbers are amicable, the program calculates the sum of the proper divisors for each number and compares it with the other number. If the sums match for both numbers, they are considered amicable. Otherwise, they are not amicable.

You can run the program and input different pairs of numbers to see if they are amicable or not.

## Input/ Output

### You May Also Like

#### Python Program to Remove Duplicates from a Linked List

In this Python program, we will create a singly linked list and remove duplicate elements from it. A linked list...

#### Python Program to Solve the Celebrity Problem

This Python program solves the Celebrity Problem by finding a person who is known by everyone but does not know...

#### Python Program to Solve n-Queen Problem with Recursion

This Python program uses a recursive approach to solve the n-Queens problem. It explores all possible combinations of queen placements...