python - 素数总和
问题描述
任何简化此代码的想法?它花费的时间太长了,但也许那是因为我的限制 ( 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)
解决方案
为了加快速度,将您的上限设为 的平方根x
。
如果在那之前没有任何因素,那么之后也没有其他因素。
推荐阅读
- c++ - 结构内分配内存的 C++ 使用情况
- android - 如何更改 Vue PWA 中(Android)导航栏的颜色?
- excel - 在 Excel 中,有没有办法设置形状的默认透明度?
- android - PreferenceFragments 不在同一个 FragmentManager 中?
- ios - UISlider 的自定义拇指图像未显示完整的图像图标大小
- python - 在 python 中的网页抓取方面需要一些帮助
- node.js - 将从 pdfkit 生成的 PDF 作为输入提供给 pdf-lib 以进行合并
- android - 为什么 RoomDatabase.Callback 方法 onCreate 提供了 SupportSQLiteDatabase 参数?
- javascript - 无法实现 ValidatorFn 接口
- angular - 如何在构造函数中使用 Jasmine 私有 ActivatedRoute 进行测试?