完美数及寻找完美数的算法(Perfect number’s algorithm)
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
这是古希腊数学家毕达哥拉斯在公元前6世纪最早研究的,他发现了6,28是完美数,过了5个世纪,毕达哥拉斯学派的成员发现了后两个完美数分别藏在百位和千位。那么,这困扰古代科学家几百年的问题我们怎么利用计算机强大的算力来将他们找出来呢?
这里我们以找出10000之内的完美数来举例(python演示):
#沃若
print("欢迎来到完美数的寻找")
for x in range(2,10001):#举例2到10000内所有的数
sum=0#初始化计数sum,用于计算所有真因子的和
for i in range(1,int((x/2)+1)):#我们找因数,可只找到1到x/2+1,节约算力
if x%i == 0:
sum+=i
if sum == x:
print(x)
这里是运行程序的结果和显示,在服务器上完成大概花了2s。
欢迎指正代码的不足,望君雅正。