我在 python 中对完美数字进行了实验,它运行良好并打印出我需要的数字。但不确定我是否需要将 (1, 1000) 放在范围内或 (2, n+1) 可以吗?我的指示要求我
“编写一个 python 程序来查找从 1 到 10,000 的所有完美数字。当找到一个完美数字时,你的逻辑应该打印它。”
什么是完全数:
在数论中,一个完美数是一个正整数,它等于其适当的正因数之和,即不包括数字本身的正因数之和(也称为其等分之和)。等效地,完美数是其所有正因数(包括其自身)之和的一半的数,即 σ1(n) = 2n。
当我运行我的程序时,它会打印出 6、28、496 和 8128。
n = 1
while True:
factors = [1]
[factors.append(i) for i in range(2,n+1) if n%i == 0]
if sum(factors) == 2*n: print n
n += 1