在Python中的亲和数

在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 

这是一种获取亲和数对计数的简单方法。我们遍历每个数对,并检查它们是否形成亲和数对。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程