题解 | #完全数计算#
完全数计算
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)