"""
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
解释:完数就是除了自身之外的所有约数之和等于他本身。
第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
终于看懂了题意。
先求出所有约数,然后求和比一下是否相等就行了
"""
def test019():
for i in range(1, 1001):
arr = []
for j in range(1, i):
if i % j == 0:
arr.append(j)
if sum(arr) == i:
print(i, arr)
test019()
02-17
8481
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)