题解 | #完全数计算#

完全数计算

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

折腾了几个小时,终于过了。

  1. 刚开始就想到全部遍历计算时间会增加,应该开方遍历,前面题解已经做过,知道方法
  2. 列表中的求和,刚开始用for遍历,计算量也增加了,最后查看别人直接sum,自己也沿用
  3. 比较绕的地方就是两层循环,sum该在那里,print在哪里,每次sum完都需把列表初始话,多层循环一定要想清楚,每个位置,

n = int(input())

list = [1]

count = 0

for i in range(5,n):

    for j in range(2,int(pow(i,0.5)+1)):

        if i % j == 0:

            k = i // j

            list.append(j)

            list.append(k)

    list1 = set(list)

    if sum(list1) == i:

        count = count + 1

    list = [1]

print(count)

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
收到了小米的实习offer,犹豫是否要去。。。
认真搞学习:雷总还当过首富呢,公司不算大厂算独角兽吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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