题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
for i in range(2,1001):
s = 0
L = []
for x in range(1,i):
if i % x == 0:
s += x
L.append(str(x))
if i == s:
print(i,' = ',' + '.join(L))
'''
运行结果:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
'''
定义函数法
def wanshu(x):
s=0
for i in range(1,x):
if x%i==0:
s=s+i
if x==s:
return True
else:
return False
#主程序
for x in range(1,1001):
if wanshu(x)==True:
print(x)