问题遇到的现象和发生背景
题目:一个数如果恰好等于它的因子之和,
这个数就称为”完数”。例如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)
遇到的问题:显示的result 是个空列表
我的解答思路和尝试过的方法
把 if i%a == 0:和 if sum(yinzi) == i:缩进同样距离时输出多个重复的值,虽然有6、28、496,但是多了一个24
正确的输出结果是6,28,496
不知道那块有问题