# coding: utf8
'''
计算完美数(完全数)
'''
for n in range(1,1000):
nlist = [i for i in range(1,n) if n%i == 0]
if sum(nlist) == n:
print ''.join([str(n),'=','+'.join([str(n) for n in nlist])])
运行结果:
6=1+2+328=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
或者这样:
print [n for n in range(1,1000) if sum([i for i in range(1,n) if n%i == 0]) == n]结果:
[6, 28, 496]
a=range(1,101)
b=range(1,101)
result=[]
for i in a:
tmp=[]
for k in b:
if k<i:
if not i%k:
tmp.append(k)
else:
continue
else:
break
count=0
for m in tmp:
count=count+m
if count==i:
result.append(i)
else:
continue
print(result)