题解 | #完全数计算#

完全数计算

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

n = int(input())   # 输入正整数n
count = 0  # 完全数的个数,初始值为0

for k in range(2,n+1):      # 被除数
    sum = 1     # 因子之和,肯定会有1,所以初始值设置为1
    for i in range(2,int(k**0.5)+1):        # 除数
        if k % i == 0:      # 如果k%i==0说明i是因子
            sum += i    # 那么sum加上i
            if (k/i != i):  # 如果k/i!=i,说明k/i是另外一个因子
                sum += k/i  # sum需要加上另外一个因子
    if sum == k:     # 每处理一个k之后,核实sum是否等于k
        count += 1      # 如果sum=k,那么说明k是完全数,count加1
print(count)        # 打印完美数count的个数

全部评论

相关推荐

10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务