题解 | #完全数计算#

完全数计算

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)

全部评论

相关推荐

03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
04-30 15:51
已编辑
上海交通大学 机械工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务