题解 | 完全数计算
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
# 思路:用两层嵌套循环
# step1: 定义一个空列表res[],用于存放完全数
# step2: 外层循环,for i in range(1, n),并初始化真因数之和为0
# step3: 内层循环,for j in range(1, i)--第一步:通过遍历,求出真因数;
# step4: 内层循环结束后,比较真因数之和与i是否相等,若相等,则说明i是完全数,将i添加到res[]列表中
# step5: 继续下一轮的外循环
# step6: 外循环结束,所有完全数均已添加到res[]列表中,列表的长度即元素的个数,即完全数的个数
# 求一个数的因数
n = int(input())
res = []
for i in range(1, n):
sum_i = 0 # 卡点:sum_i不知道是写在哪一层循环--总结:写在计算循环的外层循环中
for j in range(1, i):
if i % j == 0:
sum_i += j
if sum_i == i:
res.append(i)
print(len(res))
查看29道真题和解析