1092:练6.8 求亲和数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 293 通过数: 201
【题目描述】
自然数a的因子是指能被a整除的所有自然数,但不含a本身。例如12的因子为:1和2或3或4和6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。
【输入】
(无)
【输出】
1行,分别为a和b(a < b)。
def factor(x):
s = 0
for i in range(1, x // 2 + 1):
if x % i == 0:
s = s + i
return s
if __name__ == '__main__':
a = 2
while (a):
b = factor(a)
if factor(b) == a and a < b:
print(a, b)
break
else:
a = a + 1
最小是指两个数之和最小吗?
n = 1
while True:
m = 0
k = 0
for i in range(1,n):
if n%i==0:
m+=i
for j in range(1,m):
if m%j==0:
k+=j
if n==k and n!=m:
print(n,m)
break
n = n+1
最小的是 220和284
循环遍历,直到找出一对数据即可
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!