您的位置:

Python 中的友好数

在本教程中,我们将学习如何在 Python 中获得友好的数字。首先,我们将了解什么是友好号码以及如何使用它们。

友好数是两个不同的数,它们相互关联,每个数的适当除数之和等于另一个数。

换句话说,x 的所有适当除数和 y 的所有适当除数之和应该等于相反的数。


sum_x = y and sum_y = x

假设我们有两个数字,123 和 426,我们需要找到 123 和 426 的所有适当除数;然后我们做 123 的适当除数的和,同样做 426。

123 的适当除数之和应该等于 426,426 的适当除数应该等于 123。

如何在 Python 中检查两个数字是否友好

以下是判断两个号码是否友好的步骤。

  • 首先,将这两个整数作为用户的输入。
  • 求出这两个数的适当除数,并求它们的和。
  • 现在检查给定的数字是否等于相反的数字。
  • 如果他们是平等的,那么他们是友好的,否则就不是。
  • 我们得到输出。

程序


x=int(input('Enter first number : '))
y=int(input('Enter second number : '))
sum1=0
sum2=0
for i in range(1,x):
    if x%i==0:
        sum1+=i
for j in range(1,y):
    if y%j==0:
        sum2+=j
if(sum1==y and sum2==x):
    print('Given numbers are Amicable!')
else:
    print('Given numbers are not Amicable!')

输出:

Enter first number : 220
Enter second number : 284
Given numbers are Amicable!    

让我们看看另一个输出。

Enter first number : 365
Enter second number : 456
Given numbers are not Amicable! 

解释-

在上面的例子中,我们接受用户输入并将其存储在单独的变量中。我们使用 for循环和 if语句来找到这两个数字的适当除数。然后我们求出这两个数的适当除数之和。使用 if语句,我们检查了数字的适当除数之和是否等于另一个数字,反之亦然。

如何从列表中获得友好配对的计数

我们有两个整数列表,我们将从这两个列表中选择每个数字并进行比较。如果数字是友好的,增加计数并返回。让我们理解下面的例子。

示例-


# Python3 program to count
# amicable pairs in an array
# Calculate the sum
# of proper divisors
def sumOfDiv(x):
    sum = 1
    for i in range(2, x):
        if x % i == 0:
            sum += i
    return sum
# Check if pair is amicable
def CheckAmicable(a, b):
    if sumOfDiv(a) == b and sumOfDiv(b) == a:
        return True
    else:
        return False
def countPairs(arr, n):
    count = 0
    for i in range(0, n):
        for j in range(i + 1, n):
            if CheckAmicable(arr[i], arr[j]):
                count = count + 1
    return count
list1 = [220, 284, 1184,
        1210, 2, 5]
n1 = len(list1)
print(countPairs(list1, n1))

list2 = [2620, 2924, 5020,
        5564, 6232, 6368]
n2 = len(list2)
print(countPairs(list2, n2))

输出:

2
3 

这是一个简单的方法来获得友好号码对的计数。我们遍历每一对,检查它们是否构成友好的一对。