完数

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
       找出10000以内的所有完数。

代码:

def func(a):
    b=[]
    for i in range(1,int(a/2)+1):
        if a%i==0:
            b.append(i)
    sum=0
    for i in range(len(b)):
        sum=sum+b[i]
    if(sum==a):
        print(a)
        print(b)
if __name__ == "__main__":   
    for i in range(1,10000):
        func(i)
                
            
            

运行结果:

6
[1, 2, 3]
28
[1, 2, 4, 7, 14]
496
[1, 2, 4, 8, 16, 31, 62, 124, 248]
8128
[1, 2, 4, 8, 16, 32, 64, 127, 254, 508, 1016, 2032, 4064]
原文地址:https://www.cnblogs.com/sklww/p/3524634.html