题目:一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。例如6=1+2+3.编程 找出1000以内的所有完数。
/因子:就是所有可以整除这个数的数,不包括这个数自身/
python解题代码:
a=list()
a_str=list()
b=list()
sums=0
sums_str=""
for i in range(2,1000):
for j in range(1,i):
if i%j==0:
a.append(j)
sums =sum(a)
if sums==i :
b.append(i)
for ii in range(len(a)):
if ii==(len(a)-1):
sums_str=sums_str+str(a[ii])
else:
sums_str=sums_str+str(a[ii])+"+"
a_str.append(sums_str)
sums_str=""
sums=0
a=[]
print("满足条件的数是:")
for jj in range(len(b)):
print(str(b[jj])+"="+a_str[jj])
运行结果:
满足条件的数是:
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248