题目:一个数如果恰好等于它的因子之和,
这个数就称为”完数”。例如6=1+2+3.
编程找出1000以内的所有完数
yinzi = []
result = []
for i in range(2,1001):
for a in range(1,i+1):
if i%a == 0:
yinzi.append(a)
if sum(yinzi) == i:
result.append(i)
yinzi.clear()
print(result)
把 if i%a == 0:和 if sum(yinzi) == i:缩进同样距离时输出多个重复的值,虽然有6、28、496,但是多了一个24
不知道那块有问题
for a in range(1,i+1):
改为
for a in range(1,i):
def demo():
result = []
for i in range(1, 1000):
sum = 0
for j in range(1, i):
if i % j == 0:
sum += j
if sum == i:
result.append(str(i))
return ",".join(result)
print("1000以内的完全数有:{}".format(demo()))