问题 7054 --亲和数对

7054: 亲和数对★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 29  解决: 16
[提交][状态][命题人:]

题目描述

亲和数对是一对整数,其中每个数都是另一个数的真因数之和。

真因数是指除了自身以外的所有因数,例如整数6的真因数有1,2,3。

例如,220和284是亲和数,因为220的真因数之和是284,而284的真因数之和是220。

查找指定范围内[a,b]所有的亲和数对。

def divisors(n):
    sum=1
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            sum+=i
            if ___________:
                sum+=n//i
    return sum
def find(stat,end):
    pairs=[]
    for i in range(start, end+1):
        dsum=divisors(i)
        if dsum>i and dsum!=i and __________:
            pairs.append(___________)
    return pairs
start=int(input())
end=int(input())
pairs=find(start,end)
for pair in pairs:
    print(pair[0],pair[1])

输入

第一行输入指定范围的起始值a

第二行输入指定范围的终止值b

1<a<b<100000

输出

输出[a,b]之间所有的亲和数对

每对亲和数单独一行,中间逗号隔开,确保前面的数比后面的数小

样例输入
Copy
1
2000
样例输出
Copy
220 284
1184 1210

提示

来源

[提交][状态]