Python 中具有改进逻辑的简单素数生成器
给定的代码旨在生成素数,但遇到问题。以下是问题的详细说明以及经过增强的修订代码:
问题和解决方案:
这是修改后的 Python 脚本:
import math def main(): count = 3 while True: isprime = True for x in range(2, int(math.sqrt(count) + 1)): if count % x == 0: isprime = False break if isprime: print(count) count += 1
优化的埃拉托色尼筛:
def gen_primes(): D = {} q = 2 while True: if q not in D: yield q D[q * q] = [q] else: for p in D[q]: D.setdefault(p + q, []).append(p) del D[q] q += 1
以上是如何在Python中有效地生成素数?的详细内容。更多信息请关注PHP中文网其他相关文章!