题解 | #完全数计算#

完全数计算

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

相关推荐

点赞 评论 收藏
分享
7 收藏 评论
分享
牛客网
牛客企业服务