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中文網其他相關文章!