🔢 素数チェッカー

平方根までの試し割りで、数が素数かどうかを判定。BigInt で大きな整数に対応。

この数は素数ですか?

素数チェッカーについて

この素数チェッカーはすべてブラウザ内で完結します。非負整数を入力すると、その数が素数かどうかを判定し、素数でない場合は最小の約数も表示します。アルゴリズムは平方根までの試し割りで、BigInt 演算により大きな整数も正確に扱います。

素数判定の仕組み

  • 定義 —— 素数とは 1 より大きい自然数で、1 と自分自身の2つの正の約数しか持たない数です。
  • 試し割り —— n を判定するには、2 から ⌊√n⌋ までの各整数 d で割ります。いずれかの d で割り切れれば n は合成数、そうでなければ n は素数です。
  • √n で十分な理由 —— n = a × b で a も b も √n より大きいと a × b > n となり矛盾します。したがって少なくとも一方の因数は √n 以下です。
  • 最適化 —— 2 を個別に処理し、その後は奇数の除数(3、5、7、…)だけを試すことで計算量を半分にします。

チェッカーの使い方

  1. 入力欄に非負整数を入力します。
  2. 判定をクリックすると、ボタンの下に結果が表示されます。
  3. 合成数の場合、(1 以外の)最小の約数がヒントとして表示されます。

よくある質問

1 は素数ですか? いいえ。現代の定義では素数は 1 より大きいため、1 は素数でも合成数でもありません。

2 は素数ですか? はい。2 は唯一の偶数の素数で、他の偶数はすべて 2 で割り切れます。

入力の大きさの上限は? BigInt により値は大きさに関わらず正確ですが、試し割りは √n が大きくなるほど遅くなります。12桁程度までは瞬時に結果が返り、非常に大きな入力は時間がかかる場合があります。

入力は保存・アップロードされますか? いいえ。すべての計算はブラウザ内で行われ、数値がサーバーに送信されることはありません。