题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
#定义一个函数来判断是不是完全数
def judge(x):
sum=0 #sum表示真因子之和
for i in range(1,int(x**0.5)+1): #找到一个真因子,其另一个真因子理论也找到了,所以只遍历到n的平方根
if x%i==0:
sum +=i
if i != x//i and x//i !=x: #注意不要重复添加,例如100的真因子有10 10 只添加其一
sum += x//i
if sum == x: #判断是不是完全数
return 1
else:
return 0
n=int(input())
total_num=0
for i in range(2,n+1): #遍历n以前的数,找到完全数的个数
total_num +=judge(i)
print(total_num)
