题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
from math import sqrt # 完全数计算 def count_perfect_num(n): # 定义一个函数,判断一个数是否是完全数 lst = [] # 创建一个列表,存放因子 for i in range(1,int((n // 2)+1)): # 遍历从 1 到 n/2 的所有整数 if n % i == 0: # 如果 i 能整除 n ,则 i 是 n 的因子 lst.append(i) # 将 i 添加到列表中 if sum(lst) == n: # 如果列表中的所有数之和等于 n,说明 n 是完全数 return True else: return False count = 0 # 定义一个变量 count ,用来记录完全数的个数 for i in range(1,int(input())+1): # 遍历从 1 到 n 的所有整数 if count_perfect_num(i): # 如果 i 是完全数,调用函数判断 count += 1 # 则 count 加一 print(count) # 打印结果