题解 | #完全数计算#

完全数计算

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

n = int(input())
count = 0
# 从2到n遍历
for k in range(2,n+1):
    out = []
#     获取所有约数,以开方为中点,避免重复计算
    for i in range(2, int(k**0.5+1)):
        if k%i == 0:
            out.append(i)
            out.append(k//i)
#         print(out)
#     print("{},{}".format(k,sum(out)+1))
    
#     print()
# 获取到目标就计数。题目答案有错误,1也是完全数,但没计入。
    if sum(out)+1==k:
#         print(type(k))
#         print(type(sum(out)+1))
#         print(k)
#         print(out)
        count = count+1

# print("end")
print(count)

# print()

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务