N より下のすべての素数をリストする最速の方法
Python には、指定された数 N より下のすべての素数をリストする効率的なアルゴリズムがいくつかあります。最も高速なアルゴリズムの 1 つは、ふるい分けと算術演算を組み合わせて素数を識別するアトキンのふるいです。
その他の効率的なアルゴリズム
アトキンのふるいに加えて、素数を列挙するための他の効率的なアルゴリズムには次のものがあります。
適切なアルゴリズムの選択
最適なアルゴリズム特定のアプリケーションは、N のサイズと必要な速度によって異なります。 N の値が小さい場合、エラトステネスのふるいはシンプルで効率的な選択です。 N の値が大きい場合は、アトキンのふるいまたは上記の他のアルゴリズムのいずれかがより適している可能性があります。
アトキンのふるいの Python 実装は次のとおりです。
def sieve_of_atkin(limit): """Return a list of prime numbers up to the given limit.""" # Create a list of all integers up to the given limit. numbers = list(range(limit + 1)) # Mark 0 and 1 as non-prime. numbers[0] = numbers[1] = 0 # Iterate over all odd numbers up to the square root of the limit. for i in range(3, int(limit**0.5) + 1, 2): # If i is prime, mark all multiples of i as non-prime. if numbers[i]: for j in range(i * i, limit + 1, i * 2): numbers[j] = 0 # Return the list of prime numbers. return [number for number in numbers if number]
追加の考慮事項
以上がPython で指定された数値 N より下のすべての素数を見つける最速の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。