首页 > 解决方案 > 素数总和

问题描述

任何简化此代码的想法?它花费的时间太长了,但也许那是因为我的限制 ( 2000000) 太高了。

def is_prime(x):
    for i in range(2, x):
        if x == 2:
            break
        elif x % i == 0:
            return False
            break


total = 0
for num in range(2, 2000000):
    if is_prime(num) != False:
        print(num)
        total += num

print(total)

标签: python

解决方案


为了加快速度,将您的上限设为 的平方根x
如果在那之前没有任何因素,那么之后也没有其他因素。


推荐阅读