题解 | #参数解析#

完全数计算

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

通过简单的判断语句,优化双循环,大大降低运行时间。
while True:
    try:
        n = int(input())

        res = 0
        for i in range(2, n+1):
            yinzi = []
            if i % 2 == 0:   # 循环缩减一半
                for j in range(1, i//2+1):
                    if i % j == 0:
                        yinzi.append(j)
                if sum(yinzi) == i:
                    res += 1
            elif i % 3 == 0:   # 循环缩减2/3
                for j in range(1, i//3+1):
                    if i % j == 0:
                        yinzi.append(j)
                if sum(yinzi) == i:
                    res += 1
        print(res)
    except:
        break

全部评论

相关推荐

用微笑面对困难:你出于礼貌叫了人一声大姐,大姐很欣慰,她真把你当老弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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