Prime Sieve
エラトステネスのふるいを使用して指定された限度までのすべての素数を見つけます。グリッドで素数を視覚化します。
数値グリッド(素数をハイライト)
ハイライト=素数
素数
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
このツールについて
素数ふるい(Prime Sieve)は、指定された上限までのすべての素数を効率的に見つける数学的アルゴリズムです。2000年以上前に開発されたエラトステネスの篩は、素数のリストを生成する最速の方法の1つであり、暗号化、数論研究、教育現場で広く使われています。このツールはその古典的なアルゴリズムをブラウザにもたらし、素数の分布と性質を対話的に探索することができます。
このツールを使用するには、検索範囲の上限を入力して「素数を検索」をクリックします。ツールは直ちにその上限までのすべての素数をグリッド形式で表示し、それらの頻度とパターンを視覚化しやすくします。一般的な用途には、教育プロジェクト用の素数の検証、暗号化アルゴリズム用の素数生成、連続する素数間のギャップの研究、および素数分布に関する数学的な奇妙な事柄の探索が含まれます。
エラトステネスの篩は、各素数の倍数を合成数として反復的にマークすることで機能し、マークされていない数のみが素数として残ります。この方法は、各数を個別に割り切るかどうかで検証するよりもはるかに高速です。100万未満の上限では、計算はほぼ瞬時に完了します。上限が大きい場合、デバイスによって数秒かかる場合があります。このツールは、学生、数学者、および数論の基本的な構成要素である素数について好奇心がある人に最適です。
よくある質問
コード実装
def sieve_of_eratosthenes(limit: int) -> list[int]:
"""Return list of all primes up to limit."""
if limit < 2:
return []
is_prime = [True] * (limit + 1)
is_prime[0] = is_prime[1] = False
i = 2
while i * i <= limit:
if is_prime[i]:
for j in range(i * i, limit + 1, i):
is_prime[j] = False
i += 1
return [n for n, p in enumerate(is_prime) if p]
primes = sieve_of_eratosthenes(100)
print(primes)
# [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, ...]
print(f"Count: {len(primes)}") # Count: 25Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.