题解 | #完全数计算#

完全数计算

http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84

思路:对输入范围内每个数求因数,再对因数求和比较,如果是完全数,存在一个空列表里,最后输出列表长度

while True:
    try:
        a  = int(input())
        
        res = []
        for j in range(1, a+1):
            b = [] #b是对每个j都需要单独定义的,如果定义在之前,会累积
            for i in range(1, j//2+1):#注意永远小于等于它的一半
                if j % i == 0:
                    b.append(i)
            s = sum(b)
            #print(b)
            if s == j:
                res.append(j)
        print(len(res))
        
    except:
        break
全部评论
请问为什么要小于等于他的一半呢?
点赞 回复 分享
发布于 2022-02-16 17:37

相关推荐

不愿透露姓名的神秘牛友
昨天 11:55
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
昨天 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

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