埃拉托斯特尼筛法 - 在 Python 中查找素数
问题:
尝试实现时Python 中的埃拉托色尼筛法算法,用户经常会遇到执行速度慢的情况,特别是在搜索 100 万以上的素数时。
解决方案:
给定的实现提出了几个需要改进的领域:
1.未优化的算法:
2.列表操作效率低下:
优化实现:
要解决这些问题,请考虑以下优化实现:
def primes_sieve2(limit): a = [True] * limit a[0] = a[1] = False for (i, isprime) in enumerate(a): if isprime: yield i for n in range(i*i, limit, i): # Mark factors non-prime a[n] = False
主要改进:
以上是我们如何在 Python 中优化埃拉托斯特尼筛算法以加快素数生成速度?的详细内容。更多信息请关注PHP中文网其他相关文章!