题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如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]