题解 | #完全数计算#

完全数计算

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

while True:
    try:
         n=int(input())
         L=[]
         for i in range(1,n):
             p=0
             for y in range(1,i):
                 if i%y==0:
                     p=p+y
             if i==p:
                 L.append(p)
         print(len(L))
    except:
        break 
全部评论
第二个循环for y in range(1,i)不用到i,到(i//2+1)就行了,超过一半之后剩下的公约数就是它本身,所以超过半数之后就没必要遍历了
17 回复 分享
发布于 2022-03-02 21:08
第一个for循环应该是range(1,n+1)
17 回复 分享
发布于 2022-02-07 17:55
提示:运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
5 回复 分享
发布于 2022-02-21 15:13
输入6 得 0 错的 应该是1
1 回复 分享
发布于 2023-03-08 21:34 广东
还可以更优化,循坏到i的平方根+1即可,然后成对添加、去重
点赞 回复 分享
发布于 2022-06-04 16:46
n = int(input()) count = 0 for num in range(1,n+1): factor_add = 0 for i in range(1,num): if num % i == 0: factor_add += i if factor_add == num: count += 1 print(count)
点赞 回复 分享
发布于 2023-03-23 10:45 四川
这个答案不对呀 28的时候是7
点赞 回复 分享
发布于 2023-03-11 22:48 上海
您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
点赞 回复 分享
发布于 2022-09-29 23:04 江苏
超时啦
点赞 回复 分享
发布于 2022-09-06 11:17 山西
p=0为什么写在循环上面会输出0呀
点赞 回复 分享
发布于 2022-04-26 17:50
我的一样的,超时
点赞 回复 分享
发布于 2022-03-02 20:18
点赞 回复 分享
发布于 2022-01-02 23:11

相关推荐

02-14 12:40
门头沟学院 Java
程序员花海:1.面试要求必须Java笔试不一定 2.难度对等秋招 远超于日常实习是因为同一批次且转正很多 竞争压力大 3.第一个加点指标,上线了就把接口性能加上去 使用本地缓存这个不算亮点 只是技术选型,要把为什么采用这个和背后的思考写出来而不是单纯堆叠技术没意义 4.八股要一直看 很容易忘记 5.拼团交易这个老问题 堆积技术 另外建议你把奖项合并到教育背景 没必要拆出来放最后
我的简历长这样
点赞 评论 收藏
分享
01-26 19:51
门头沟学院 Java
isabener:怎么感觉像群发的呢
点赞 评论 收藏
分享
评论
35
6
分享

创作者周榜

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