Fermatの小定理と冪の余り(Fermat's little theorem and powers modulo a prime)とは、素数 $p$ と $p$ で割り切れない整数 $a$ について $a^{p-1}\equiv1\pmod p$ が成り立つことと、その冪の余りの計算への応用である。証明は、$a,2a,\dots,(p-1)a$ を $p$ で割った余りが $1,\dots,p-1$ の並べ替えになるので全部の積を比べて $(p-1)!$ で約分する。任意の整数 $a$ で $a^p\equiv a\pmod p$ も成り立つ。$p\nmid a$ のとき、指数は $p-1$ で割った余りに置き換えてよく、$a^{p-2}$ は $a$ の法 $p$ での逆元である。逆は成り立たず、合成数 $341$ でも $2^{340}\equiv1\pmod{341}$ となる。
前提知識: 合同式の計算規則, 合同式の割り算と逆元, 素数
素数を法として累乗の余りを計算すると、決まった回数で $1$ に戻るという現象が見つかる。この記事では、この現象(Fermat の小定理)を証明し、累乗の余りの計算に使う。以下、$a\equiv b\pmod n$ は「$a-b$ が $n$ で割り切れる」ことを表す。
$a=1,2,3,4$ について $a^4$ を $5$ で割った余りを求める。
| $a$ | $1$ | $2$ | $3$ | $4$ |
|---|---|---|---|---|
| $a^4$ | $1$ | $16$ | $81$ | $256$ |
| 商と余り | $5\cdot0+1$ | $5\cdot3+1$ | $5\cdot16+1$ | $5\cdot51+1$ |
どれも余りは $1$ である。$5$ は素数で、指数の $4$ は $5-1$ である。
$a=1,2,\dots,6$ について $a^6$ を $7$ で割った余りを求める。
| $a$ | $1$ | $2$ | $3$ | $4$ | $5$ | $6$ |
|---|---|---|---|---|---|---|
| $a^6$ | $1$ | $64$ | $729$ | $4096$ | $15625$ | $46656$ |
| 商と余り | $7\cdot0+1$ | $7\cdot9+1$ | $7\cdot104+1$ | $7\cdot585+1$ | $7\cdot2232+1$ | $7\cdot6665+1$ |
ここでも余りはすべて $1$ である。図 2(後出)は、$a^1,a^2,\dots,a^6$ の余りを全部並べた表である。
法を合成数にして、同じように「法から $1$ を引いた回数」だけ掛けてみる。
この記事で答える問いは次の 3 つである。
| 高校の計算 | この記事の言葉 | 大学の言葉 |
|---|---|---|
| $a,2a,\dots,(p-1)a$ の余りは並べ替え | 並べ替えの補題 | 単元群 $(\mathbb{Z}/p\mathbb{Z})^\times$ の置換 |
| $a^{p-1}$ を $1$ に置き換える | Fermat の小定理 | 群の位数は $p-1$(Lagrangeの定理) |
| 指数を $p-1$ で割った余りに置き換える | 指数の置き換え | 元の位数は $p-1$ を割る |
| $a^{p-2}$ を掛ける | 逆元を累乗で求める | 体 $\mathbb{F}_p$ での $a^{-1}$ |
証明の鍵は、次の現象である。まず例で見る。
$p=7$、$a=3$ として、$3\cdot1,\ 3\cdot2,\ \dots,\ 3\cdot6$ を $7$ で割った余りを求める。
| $k$ | $1$ | $2$ | $3$ | $4$ | $5$ | $6$ |
|---|---|---|---|---|---|---|
| $3k$ | $3$ | $6$ | $9$ | $12$ | $15$ | $18$ |
| $7$ で割った余り | $3$ | $6$ | $2$ | $5$ | $1$ | $4$ |
余りの行には $1,2,3,4,5,6$ がちょうど 1 回ずつ現れる。順番が入れ替わっただけである。$p=5$、$a=2$ でも、$2,4,6,8$ を $5$ で割った余りは $2,4,1,3$ で、$1,2,3,4$ の並べ替えになっている。
上の段の k から、下の段の「3k を 7 で割った余り」へ向かう矢印。下の 1〜6 にはちょうど 1 本ずつ矢印が届く
図 1 は ex-cgflt-perm を矢印で描いたものである。下の段のどの数にも、矢印がちょうど 1 本ずつ届いている。
証明では、合同式の割り算と逆元 で示した次の事実を使う。
$p$ が素数で、$p$ が積 $bc$ を割るならば、$p$ は $b$ か $c$ の少なくとも一方を割る。証明は 合同式の割り算と逆元 にある($p$ が $b$ を割らなければ、$b$ は法 $p$ で逆元 $b'$ をもち、$c\equiv b'(bc)\equiv0$ となる)。たとえば $p=7$ は $bc=12\cdot14=168=7\cdot24$ を割り、確かに $14$ を割る。
$p$ を素数、$a$ を $p$ で割り切れない整数とする。このとき
$$
a,\ 2a,\ 3a,\ \dots,\ (p-1)a
$$
を $p$ で割った余りは、$1,2,\dots,p-1$ をちょうど 1 回ずつ並べ替えたものである。
方針:$p-1$ 個の余りについて、(1) どれも $0$ でないこと、(2) どの 2 つも等しくないことを示す。すると、$1$ から $p-1$ までの $p-1$ 個の数を $1$ 回ずつ使い切るしかない。
段 1(どの余りも $0$ でない)。$1\le k\le p-1$ とする。$ka$ を $p$ で割った余りが $0$、つまり $p$ が $ka$ を割るとすると、rem-cgflt-euclid により $p$ は $k$ か $a$ を割る。$1\le k\le p-1$ なので $p$ は $k$ を割らない($k$ は $p$ より小さい正の数である)。$a$ は仮定により $p$ で割り切れない。どちらも起こらないので、$ka$ の余りは $0$ でない。
段 2(どの 2 つの余りも異なる)。$1\le i< j\le p-1$ とし、$ia$ と $ja$ の余りが等しいとする。余りが等しいことは合同と同じ(合同式の計算規則)なので $ia\equiv ja$、つまり $p$ は
$$
ja-ia=(j-i)a
$$
を割る。rem-cgflt-euclid により $p$ は $j-i$ か $a$ を割る。しかし $0< j-i< p$ なので $p$ は $j-i$ を割らず、$a$ も割らない。これは矛盾なので、$ia$ と $ja$ の余りは異なる。
段 3(数える)。段 1 により、$p-1$ 個の余りはどれも $1,2,\dots,p-1$ のどれかである。段 2 により、それらはすべて異なる。$p-1$ 個の異なる数が、$p-1$ 個の数からなる集合 $\{1,2,\dots,p-1\}$ に入っているので、この集合のどの数もちょうど 1 回ずつ現れる。$\square$
並べ替えの補題を使う前に、$p=7$、$a=3$ で証明と同じ計算をしてみる。
$3\cdot1,\ 3\cdot2,\ \dots,\ 3\cdot6$ を全部掛けると、$3$ が $6$ 個と $1\cdot2\cdots6=6!$ が出てくる。
$$
(3\cdot1)(3\cdot2)(3\cdot3)(3\cdot4)(3\cdot5)(3\cdot6)=3^6\cdot6!
$$
一方、ex-cgflt-perm によりそれぞれの因数の余りは $3,6,2,5,1,4$ なので、積の規則により
$$
3^6\cdot6!\equiv3\cdot6\cdot2\cdot5\cdot1\cdot4=720=6!\pmod 7
$$
である(掛ける順番を並べ替えると $1\cdot2\cdot3\cdot4\cdot5\cdot6$ になる)。$6!=720=7\cdot102+6$ は $7$ で割り切れないので、$\gcd(720,7)=1$ であり、両辺を $720$ で約分できる(合同式の割り算と逆元 の約分の条件)。よって $3^6\equiv1\pmod 7$ である。ex-cgflt-pow7 の $3^6=729=7\cdot104+1$ と一致する。
$p$ を素数、$a$ を $p$ で割り切れない整数とする。このとき
$$
a^{p-1}\equiv1\pmod p
$$
である。
方針:ex-cgflt-proof-demo と同じく、$a,2a,\dots,(p-1)a$ の積を 2 通りに計算し、$(p-1)!$ で約分する。
段 1(積を 1 通り目に計算する)。$a$ を $p-1$ 回、$1,2,\dots,p-1$ を 1 回ずつ掛けることになるので
$$
a\cdot2a\cdot3a\cdots(p-1)a=a^{p-1}\cdot\bigl(1\cdot2\cdots(p-1)\bigr)=a^{p-1}\,(p-1)!
$$
である。
段 2(積を 2 通り目に計算する)。$ka$ を $p$ で割った余りを $r_k$ とすると $ka\equiv r_k\pmod p$ である($k=1,\dots,p-1$)。積の規則をくり返し使うと
$$
a\cdot2a\cdots(p-1)a\equiv r_1r_2\cdots r_{p-1}\pmod p
$$
である。lem-cgflt-perm により $r_1,r_2,\dots,r_{p-1}$ は $1,2,\dots,p-1$ の並べ替えなので、掛ける順番を変えれば $r_1r_2\cdots r_{p-1}=1\cdot2\cdots(p-1)=(p-1)!$ である。
段 3(2 つを比べる)。段 1 と段 2 から
$$
a^{p-1}\,(p-1)!\equiv(p-1)!\pmod p
$$
である。
段 4($(p-1)!$ は $p$ で割り切れない)。$1\le k\le p-1$ について「$p$ は $k!$ を割らない」を、$k$ についての帰納法で示す。$k=1$ では $1!=1$ なので、$p$ は割らない。$k-1$ で成り立つとして、$p$ が $k!=(k-1)!\cdot k$ を割ったとすると、rem-cgflt-euclid により $p$ は $(k-1)!$ か $k$ を割る。前者は帰納法の仮定に反し、後者は $1\le k< p$ に反する。よって $p$ は $k!$ を割らず、特に $(p-1)!$ を割らない。
段 5(約分する)。$p$ の正の約数は $1$ と $p$ だけで、段 4 により $p$ は $(p-1)!$ を割らないので、$\gcd\bigl((p-1)!,p\bigr)=1$ である。合同式の割り算と逆元 の約分の条件により、段 3 の両辺を $(p-1)!$ で約分でき、$a^{p-1}\equiv1\pmod p$ を得る。$\square$
$p$ で割り切れる $a$ も含めて 1 つの式で書くと、次の形になる。
$p$ を素数とする。すべての整数 $a$ について $a^p\equiv a\pmod p$ である。
方針:thm-cgflt-fermat が使える場合と使えない場合に分ける。
段 1($p$ が $a$ を割らないとき)。thm-cgflt-fermat により $a^{p-1}\equiv1$ である。両辺に $a$ を掛けると、積の規則により $a^p=a^{p-1}\cdot a\equiv1\cdot a=a$ である。
段 2($p$ が $a$ を割るとき)。$a\equiv0\pmod p$ なので、累乗の規則により $a^p\equiv0^p=0$ である。$a\equiv0$ でもあるので、$a^p\equiv0\equiv a$ である。$\square$
$0< k< p$ で $\binom pk$ が $p$ で割り切れることを使う別証明の土台である二項定理は 二項定理と組合せの恒等式 で扱う。
Fermat の小定理を使うと、大きな指数を小さくできる。まず表で様子を見る。
a の k 乗を 7 で割った余り(k = 1〜6)。緑は余りが 1 の欄で、k = 6 の列はすべて緑になる
図 2 では、余りが $1$ の欄を緑にした。$k=6$ の列はすべて $1$ である(thm-cgflt-fermat)。緑の欄はほかにもある。$a=1$ の行はすべて $1$ で、$a=2,4$ の行は $k=3$ で、$a=6$ の行は $k=2$ と $k=4$ で $1$ になる。つまり、$6$ 乗より早く $1$ に戻る行もある。
早く $1$ に戻っても、定理とは矛盾しない。たとえば $2^3=8=7\cdot1+1$ なので $2^3\equiv1\pmod 7$ であり、累乗の規則により
$$
2^6=\left(2^3\right)^2\equiv1^2=1\pmod 7
$$
となって、$6$ 乗でもやはり $1$ になる。定理が言うのは「$6$ 乗すれば必ず $1$」であって、「$6$ 乗で初めて $1$」ではない。何乗で初めて $1$ に戻るか(周期)は 冪の余りの周期と元の位数 で扱う。その記事では、初めて $1$ に戻る指数がいつも $6$ の約数($1,2,3,6$)になることも示す。
以下の例では、$6$ 乗で初めて $1$ に戻る $a=3$ の行を使う。
図 2 の $a=3$ の行を $k=12$ まで延ばすと、$3^k$ を $7$ で割った余りは
| $k$ | $1$ | $2$ | $3$ | $4$ | $5$ | $6$ | $7$ | $8$ | $9$ | $10$ | $11$ | $12$ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 余り | $3$ | $2$ | $6$ | $4$ | $5$ | $1$ | $3$ | $2$ | $6$ | $4$ | $5$ | $1$ |
である。$3^6\equiv1$ なので、$3^7=3^6\cdot3\equiv3$、$3^8=3^6\cdot3^2\equiv3^2$、……と、$6$ 乗ごとに同じ並びがくり返す。指数が $6$ だけ違う 2 つの累乗は、余りが等しい。
$p$ を素数、$a$ を $p$ で割り切れない整数とする。$0$ 以上の整数 $k,l$ が $k\equiv l\pmod{p-1}$ を満たすならば、
$$
a^k\equiv a^l\pmod p
$$
である($a^0=1$ と約束する)。特に、$a^k$ の余りを求めるには、$k$ を $p-1$ で割った余り $r$ を使って $a^r$ の余りを求めればよい。
方針:大きい方の指数を「小さい方+$(p-1)$ の倍数」と書き、Fermat の小定理で $a^{p-1}$ を $1$ に置き換える。
段 1(書き直す)。$k$ と $l$ の役割を入れ替えてもよいので、$k\ge l$ とする。$k-l$ は $p-1$ の倍数で $0$ 以上なので、$k-l=(p-1)m$($m$ は $0$ 以上の整数)と書ける。よって
$$
a^k=a^{l+(p-1)m}=a^l\cdot\left(a^{p-1}\right)^m
$$
である。
段 2(置き換える)。thm-cgflt-fermat により $a^{p-1}\equiv1$ である。累乗の規則(合同式の計算規則)により $\left(a^{p-1}\right)^m\equiv1^m=1$ である($m=0$ のときは両辺とも $1$ である)。積の規則により
$$
a^k=a^l\cdot\left(a^{p-1}\right)^m\equiv a^l\cdot1=a^l\pmod p
$$
である。
段 3(後半)。$k$ を $p-1$ で割って $k=(p-1)q+r$($0\le r< p-1$)とすると、$k-r=(p-1)q$ なので $k\equiv r\pmod{p-1}$ であり、前半により $a^k\equiv a^r$ である。$\square$
指数 $p-2$ を使うと、逆元が累乗で求まる。
$p$ を素数、$a$ を $p$ で割り切れない整数とする。$a^{p-2}$ は $a$ の法 $p$ での逆元である。つまり $a\cdot a^{p-2}\equiv1\pmod p$ である。
方針:指数法則で $a\cdot a^{p-2}$ を $a^{p-1}$ にまとめる。
$p\ge2$ なので $p-2\ge0$ であり、$a\cdot a^{p-2}=a^{1+(p-2)}=a^{p-1}$ である。thm-cgflt-fermat により $a^{p-1}\equiv1\pmod p$ なので、$a\cdot a^{p-2}\equiv1\pmod p$ である。$\square$
法が大きいときは、互除法で逆元を求める方が計算は少なくてすむことが多い。
| 外した仮定・やりたい操作 | 崩れる主張 | ボックス |
|---|---|---|
| $p$ が $a$ を割らない | $a^{p-1}\equiv1\pmod p$ | ex-cgflt-divisible |
| 法が素数 | $a^{n-1}\equiv1\pmod n$($\gcd(a,n)=1$) | ex-cgflt-composite |
| 定理の逆向き | $a^{n-1}\equiv1\pmod n$ ならば $n$ は素数 | ex-cgflt-341 |
| 指数を法 $p$ で見る | $k\equiv l\pmod p\Rightarrow a^k\equiv a^l$ | ex-cgflt-modp |
$p=7$、$a=7$ では $7^6\equiv0\pmod 7$ であり、$1$ ではない。$a=14$ でも $14^6\equiv0$ である。thm-cgflt-fermat の仮定「$p$ が $a$ を割らない」は外せない。ただし cor-cgflt-all の形 $a^7\equiv a$ は、$a=7$ でも両辺が $0$ と合同で成り立っている。
$341=11\cdot31$ は合成数である。しかし
$$
2^{10}=1024=3\cdot341+1
$$
なので $2^{10}\equiv1\pmod{341}$ であり、累乗の規則により
$$
2^{340}=\left(2^{10}\right)^{34}\equiv1^{34}=1\pmod{341}
$$
である。したがって「$2^{n-1}\equiv1\pmod n$ ならば $n$ は素数」は $n=341$ で破れる。$341$ は底を $3$ にすると $3^{340}\equiv56\not\equiv1\pmod{341}$ となり(計算機で確かめた値)、合成数だと分かる。しかし $561=3\cdot11\cdot17$ のように、$561$ と互いに素なすべての $a$ で $a^{560}\equiv1\pmod{561}$ となる合成数もある(Carmichael 数。Ste17 §2.4。この記事では証明しない)。
$7\equiv0\pmod 7$ だが、$2^7=128=7\cdot18+2$ なので $2^7\equiv2$、一方 $2^0=1$ である。$2^7\not\equiv2^0\pmod 7$ なので、指数を法 $p$ で置き換えられるとは限らない。置き換えてよいのは、thm-cgflt-exponent のとおり法 $p-1$ で合同なときである($7\equiv1\pmod 6$ なので $2^7\equiv2^1=2$ となり、実際の値と合う)。
数列 $a_n=2^n+3^n+6^n-1$($n=1,2,3,\dots$)のすべての項と互いに素であるような正の整数をすべて求めよ。
出典:国際数学オリンピック(2005 年)第 4 問 Oly05。筆者による和訳。
方針:答は $1$ だけであることを示す。$2$ 以上の整数は素数で割り切れるので、「どの素数 $p$ も、ある項 $a_n$ を割る」ことを示せばよい。$p\ge5$ では $n=p-2$ を選び、Fermat の小定理を使う。
段 1($1$ は条件を満たす)。$1$ と任意の整数の最大公約数は $1$ なので、$1$ はすべての項と互いに素である。
段 2(何を示せばよいか)。$m\ge2$ とし、$p$ を $m$ の素因数の 1 つとする。ある項 $a_n$ が $p$ で割り切れれば、$p$ は $m$ と $a_n$ の公約数なので、$m$ はその項と互いに素でない。よって「どの素数 $p$ についても、$p$ で割り切れる項がある」ことを示せば、$m\ge2$ はどれも条件を満たさないことが分かる。
段 3($p=2,3$)。$a_2=4+9+36-1=48=2^4\cdot3$ は $2$ でも $3$ でも割り切れる。
段 4($p\ge5$ で $6a_{p-2}$ を計算する)。$p\ge5$ なので $p-2\ge3$ であり、$a_{p-2}$ は数列の項である。$2,3,6$ はどれも $p$ で割り切れないので、thm-cgflt-fermat により
$$
2^{p-1}\equiv1,\qquad 3^{p-1}\equiv1,\qquad 6^{p-1}\equiv1\pmod p
$$
である。$6=3\cdot2=2\cdot3$ を使って $6a_{p-2}$ を書き直すと
$$
\begin{aligned}
6a_{p-2}&=6\cdot2^{p-2}+6\cdot3^{p-2}+6\cdot6^{p-2}-6\\
&=3\cdot2^{p-1}+2\cdot3^{p-1}+6^{p-1}-6\\
&\equiv3\cdot1+2\cdot1+1-6=0\pmod p
\end{aligned}
$$
となる。
段 5($6$ を約分する)。$p\ge5$ は素数なので $6=2\cdot3$ を割らず、$\gcd(6,p)=1$ である。合同式の割り算と逆元 の約分の条件により、$6a_{p-2}\equiv6\cdot0$ から $a_{p-2}\equiv0\pmod p$ である。つまり $p$ は $a_{p-2}$ を割る。
段 2〜段 5 から、$2$ 以上の整数はどれかの項と互いに素でない。答は $1$ だけである。たとえば $p=5$ では $a_3=250=5\cdot50$、$p=7$ では $a_5=8050=7\cdot1150$ である。$\square$
cor-cgflt-inverse により、$p$ で割り切れない $x$ について $x^{p-2}$ は $x$ の逆元 $x^{-1}$ である。つまり「$p-2$ 乗」は「$-1$ 乗」であり、体 $\mathbb{F}_p$(合同式の割り算と逆元)の中で
$$
a_{p-2}\equiv2^{-1}+3^{-1}+6^{-1}-1\pmod p
$$
となる。有理数の等式 $\frac12+\frac13+\frac16=1$ は、分母を払うと整数の等式 $3+2+1=6$ であり、これを $\mathbb{F}_p$ に持ち込んで $6^{-1}$ を掛ければ $2^{-1}+3^{-1}+6^{-1}=1$ が $\mathbb{F}_p$ でも成り立つ。たとえば $p=7$ では $2^{-1}=4$、$3^{-1}=5$、$6^{-1}=6$ で、$4+5+6=15\equiv1\pmod 7$ である。$n=p-2$ という選び方は、「指数を法 $p-1$ で見て $-1$ 乗を作る」という発想から自然に出てくる。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する