题解 | #完全数计算#

完全数计算

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

def is_perfect_number(num):
    sum_of_num = []
    for i in range(1,num//2 + 1):
        if num % i == 0:
            sum_of_num.append(i)
    res = 0
    for j in sum_of_num:
        res = res + j
    return res == num

def count_perfect_number(n):
    origin = 0
    for num in range(1,n+1):
        if is_perfect_number(num):
            origin += 1
    return origin

print(count_perfect_number(int(input())))

根据完备数定义,一个数的所有约数,除了自身外,其他约数之和等于自身,那么这个数就叫完备数

从range(1,num//2+1)中遍历出所有可能的约数,判断num%i==0,就可以精确的的得到i是否为num的约数,再把他放到一个list里面最后遍历相加结果res,看是否与自身相等,若相等则记录下

全部评论

相关推荐

09-17 19:25
已编辑
太原理工大学 游戏测试
叁六玖:公司名发我,我要这个HR带我打瓦
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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