我在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
Run Code Online (Sandbox Code Playgroud)