题解 | #完全数计算#
完全数计算
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) # 打印结果
查看20道真题和解析