フェルマーの小定理とは?
フェルマーの小定理は、整数論の土台となる重要な定理です。p が素数で、a が p で割り切れない整数(つまり \(\gcd(a, p) = 1\))であるとき、a を (p − 1) 乗した数を p で割った余りは必ず 1 になる、という内容です。式で書くと $$a^{\,p-1} \equiv 1 \pmod{p}$$ となります。さらに、どんな整数 a についても成り立つ一般形として $$a^{\,p} \equiv a \pmod{p}$$ も知られています。
このツールの使い方
底となる値 a と値 p を入力してください。計算ツールが p が素数かどうかを判定し、\(\gcd(a, p)\) を求め、高速なべき乗剰余(モジュラ指数演算)を使って \(a^{\,p-1} \bmod p\) と \(a^{\,p} \bmod p\) の両方を計算します。p が素数かつ \(\gcd(a, p) = 1\) のとき、最初の結果は必ず 1 になり、定理が成り立つことを確認できます。これらの条件を満たさない場合は、定理が 1 という値を保証しないため、\(a^{\,p-1}\) の結果は n/a(該当なし)と表示されます。
計算式のしくみ
べき乗剰余では、底を繰り返し2乗しながら p で割った余りを取っていくため、指数が非常に大きくても計算量を抑えられます。この定理は、素数判定法(フェルマーテスト)、RSA暗号の鍵に関する計算、そしてモジュラ逆数の計算の基礎になっています。というのも、素数 p に対して \(a^{\,p-2} \bmod p\) が a の法 p における逆数を与えるからです。
具体例で確認
\(a = 2\)、\(p = 7\) としてみましょう。7 は素数で \(\gcd(2, 7) = 1\) なので、$$2^{6} \bmod 7 = 64 \bmod 7 = 1$$ になるはずです。✔ 一般形では $$2^{7} \bmod 7 = 128 \bmod 7 = 2$$ となり、これは \(2 \bmod 7 = 2\) に等しくなります。✔
よくある質問(FAQ)
p が素数でない場合は? 定理は成り立たないことがあります。この計算ツールは p が素数でないことを表示し、その場合に意味を持つのは一般形 \(a^{\,p} \bmod p\) の値だけです(ただし必ずしも a と等しくなるとは限りません)。
a が p の倍数の場合は? その場合 \(\gcd(a, p) \neq 1\) となるため、\(a^{\,p-1} \bmod p\) は 1 にはならず、0 になります。ただし一般形 \(a^{\,p} \equiv a\) は引き続き成り立ちます。
モジュラ逆数を求めるのに使えますか? はい。素数 p に対して、\(a^{\,p-2} \bmod p\) が法 p における a の乗法逆元(逆数)になります。