ロジックが改善された 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 中国語 Web サイトの他の関連記事を参照してください。