素数判定機(Miller-Rabin)

数値入力

サンプル数値:

判定結果

数値を入力して「判定開始」をクリック

Miller-Rabin アルゴリズムの説明:

アルゴリズム原理: Miller-Rabin は確率的素数判定アルゴリズムで、フェルマーの小定理の一般化に基づいています。奇数 n について、n-1 を 2^r × d の形式に書き、以下の条件をテストします:
a^d ≡ 1 (mod n) 或 a^(2^i × d) ≡ -1 (mod n) 对某个 0 ≤ i < r
テストラウンド数と正確性:
  • 確率的テスト:ランダムに底 a を選択。各ラウンドで誤差率を 1/4 に低減
  • k ラウンドのテスト:理論上の誤差率 ≤ (1/4)^k、実際はこれをはるかに下回る
  • 決定的テスト:n < 3,317,044,064,679,887,385,961,981 の場合、特定の基数集合 {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37} を使用して 100% 正確な結果を得られる
特殊ケース:
  • 小素数:2, 3, 5, 7 などは直接判定
  • 偶数:2 以外はすべて合成数
  • Carmichael 数:フェルマーテストは通過するが実際は合成数(561 など)。Miller-Rabin は正しく識別できる

適用シーン:

  • 暗号学:RSA鍵生成時に大きな素数を高速判定
  • 整数論研究:メルセンヌ素数、双素数、双子素数などの探索
  • 競技プログラミング:高速な素数判定、時間計算量 O(k log³n)
  • 乱数生成:特定の条件を満たす大きな素数の生成