编程找出10000以内所有完数的平方和
时间: 2023-10-30 08:08:07 浏览: 88
为了找出10000以内所有完数的平方和,我们需要先了解什么是完数。完数是指一个数恰好等于它的所有真因子之和,例如6就是一个完数,因为6的真因子是1、2、3,而1+2+3=6。现在我们已经有了找出完数的代码,接下来我们需要对找出的完数进行平方和的计算。
我们可以使用一个变量来存储平方和,然后在找到完数时将其平方加到这个变量中。最后输出这个变量的值即可得到10000以内所有完数的平方和。
下面是代码实现:
<<引用>>
import math
#函数中用到了开根号函数sqrt()
def test(i):
sum=0
for j in range(1,int(math.sqrt(i))+1,1): #只需判断从1到该数的根号即可
if i%j==0:
sum=sum+j+i/j #除以一次j相当于求得了两个真因子
else:
continue
if sum==i*2:
return i
perfect_nums = []
for n in range(1,10001,1): #从1开始循环,到10001结束,每次增加1
perfect_num = test(n)
if perfect_num:
perfect_nums.append(perfect_num)
square_sum = 0
for num in perfect_nums:
square_sum += num ** 2
print(square_sum)
阅读全文