题解 | #完全数计算#

完全数计算

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

import sys

# for line in sys.stdin:
#     a = line.split()
#     print(int(a[0]) + int(a[1]))

# 确定约数并将除去它本身外的其他五个数相加之和判断是否等于它本身
while True:
    try:
        n = int(input())
        num = 0
        bsum = 0
        for i in range(2,n):  # 注意不能从0开始,因为任何数/0没有意义;
                                # 也不能从1开始,因为1也不是完全数,但是满足判断
            bsum = 0            # bsum=0应该放在第二个for循环之前,因为要累计;
            for j in range(1,int(i**0.5)+1): # i**0.5:'float' object cannot be interpreted as an integer
                if i % j == 0 :
                    bsum = bsum + j
                    if j != 1:
                        bsum = bsum + int(i/j)
            if bsum == i :
                num = num+1
        print(num)           
    except:
        break

全部评论

相关推荐

01-14 12:34
门头沟学院 C++
牛马人的牛马人生:太暖心了啊 配环境是真烦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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