zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python:循环和函数_亲密数

Python循环 函数
2023-09-14 09:16:19 时间

【问题描述】

求整数n以内(含n)的全部亲密数。

说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,则将正整数A和B称为亲密数。

1不和其他数形成亲密数。

【输入形式】

输入整数n

【输出形式】

每一行输出一对亲密数,中间用一个空格隔开。

每一对亲密数只输出一次,小的在前。

各对亲密数按序排序,按亲密数中小的那个数从小到大排序。

【样例输入】

3000

【样例输出】

220      284

1184    1210

2620    2924

a = int(input());
b = [0 for i in range(a+1)]
ret = {}
for i in range(1,a+1):
    sum = 0
    for c in range(1,i):
        if(i%c == 0):
            sum += c
    if sum <= a and b[sum] == i:
        print("{} {}".format(min(sum,i),max(sum,i)))
    b[i] = sum