题解 | 完全数计算

完全数计算

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))




全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务