ごきげんよう。
まずは、この記事を開いてくださった皆さんに感謝を。
(Mathlogは投稿後にも編集できるので、あとから少しずつ加筆しているかもしれません。)
本記事では、整数問題における強力な武器の一つである合同式(モジュロ演算)について、初学者でも基礎から順に学べるようにまとめます。
今回扱う中心は、合同式の性質とその理由です。
つまり、「どの問題で、どの法を選び、どう使うのか」という実戦的な話よりも、その前提となる理論を丁寧に確認していきます。具体例はいくつか扱いますが、主役はあくまで合同式そのものです。
性質と証明が交互に現れるので、初めからすべての証明を完璧に理解しようとしなくても大丈夫です。
まずは、
この記事は、後半になるにつれて難易度がかなり上がります。
例えば、$2^{100}$ の下一桁を求めたいとします。
もちろん、$2$を$100$回掛けても求められます。しかし、下一桁だけを知りたいのに、巨大な数そのものを計算するのは大変です。
ここで、下一桁は「$10$で割った余り」によって決まることに注目します。
$2$の累乗を並べ、下一桁だけを見ると、
$$
2,4,8,6,2,4,8,6,\ldots
$$
となり、周期性が見えてきます。
巨大な整数そのものではなく、ある整数で割った余りだけを考える。
合同式は、この考えを等式に近い感覚で扱えるようにする道具です。
ただし、等式とまったく同じではありません。特に割り算には注意が必要です。その違いも含めて、まずは定義から確認していきましょう。
合同式の基盤となる言葉を先に確認します。
任意の整数 $a$ と正の整数 $m$ に対して、
$$
a=qm+r\qquad (0\leqq r< m)
$$
を満たす整数 $q,r$ がただ一通りに定まります。
この $q$ を商、$r$ を余りといいます。
例えば、$17$を$6$で割ると
$$
17=6\cdot2+5
$$
なので、商は$2$、余りは$5$です。
逆に、「整数$a$を$m$で割った余りが$r$である」と分かっているなら、ある整数$k$を用いて
$$
a=mk+r
$$
と表せます。
偶数を$2k$、奇数を$2k+1$とおくのも、まさにこの考え方です。
整数 $s\ne0$ と整数 $t$ に対して、ある整数 $k$ を用いて
$$
t=sk
$$
と表せるとき、$s$を$t$の約数、$t$を$s$の倍数といいます。
このことを
$$
s\mid t
$$
と表します。左側が約数、右側が倍数です。
また、$s$が$t$の約数でないことを
$$
s\nmid t
$$
と表します。
例えば、$3\mid12$ は正しく、$5\nmid12$ です。
以下では、「$2$以上の整数は素数の積にただ一通りに分解できる」という素因数分解の基本性質を用います。
まず、「同じ余り」と「差が倍数」が同じ内容であることを確認します。
整数$a,b$を正の整数$m$で割った余りが等しいことと、$a-b$が$m$の倍数であることは同値です。
$a,b$を$m$で割った商と余りをそれぞれ$q_1,r_1$および$q_2,r_2$とすると、
$$
a=q_1m+r_1,\qquad b=q_2m+r_2
$$
と表せます。ただし、$0\leqq r_1,r_2< m$です。
余りが等しく$r_1=r_2$ならば、
$$
a-b=(q_1-q_2)m
$$
となるので、$a-b$は$m$の倍数です。
逆に、$a-b$が$m$の倍数ならば、
$$
a-b=(q_1-q_2)m+(r_1-r_2)
$$
より、$r_1-r_2$も$m$の倍数です。
一方、
$$
-(m-1)\leqq r_1-r_2\leqq m-1
$$
なので、この範囲にある$m$の倍数は$0$だけです。したがって$r_1=r_2$となります。
二つの整数$a,b$について、$a-b$が正の整数$m$の倍数であるとき、$a$と$b$は$m$を法として合同であるといい、
$$
a\equiv b\pmod m
$$
と表します。
すなわち、
$$
a\equiv b\pmod m
\iff
m\mid(a-b)
$$
です。
先ほどの補題より、これは「$a,b$を$m$で割った余りが等しい」ということと同じです。
法が$1$の場合は、どの整数同士も合同になります。通常は、意味のある余りの分類が得られる$m\geqq2$の場合を考えます。
法を$6$とします。
整数を$6$で割った余りは、
$$
0,1,2,3,4,5
$$
のいずれかです。
$1,7,13$はいずれも$6$で割った余りが$1$なので、
$$
1\equiv7\equiv13\pmod6
$$
となります。
$5$を$6$で割った余りは$5$です。一方、
$$
5-(-1)=6
$$
は$6$の倍数なので、
$$
5\equiv-1\pmod6
$$
が成り立ちます。
ここで重要なのは、$-1$は「余り」ではないということです。
割り算の原理における余りは、必ず$0\leqq r<6$を満たします。$-1$は、余り$5$と合同な、計算に便利な代表元です。
合同式では、$0,1,\ldots,m-1$だけでなく、それらと合同な負の整数も自由に使えます。「$6$に$1$足りない数」を$-1$と表せるのは、合同式の大きな強みです。
また、定義から
$$
a\equiv b\pmod m
\iff
a-b\equiv0\pmod m
$$
も直ちに分かります。
合同式では、足し算・引き算・掛け算を等式とよく似た形で扱えます。
$$
a\equiv b\pmod m,\qquad c\equiv d\pmod m
$$
のとき、次が成り立ちます。
$$
a+c\equiv b+d\pmod m
$$
$$
a-c\equiv b-d\pmod m
$$
$$
ac\equiv bd\pmod m
$$
定義より、ある整数$k,l$を用いて
$$
a-b=km,\qquad c-d=lm
$$
と表せます。
したがって、
$$
(a+c)-(b+d)=(a-b)+(c-d)=(k+l)m
$$
$$
(a-c)-(b-d)=(a-b)-(c-d)=(k-l)m
$$
となるので、和と差の性質が示されます。
また、
$$
ac-bd=c(a-b)+b(c-d)=(ck+bl)m
$$
となるので、積の性質も示されます。
特に、合同式の両辺に同じ整数を足したり、引いたり、掛けたりできます。
しかし、両辺を同じ整数で割る操作だけは、いつでもできるわけではありません。
まず、失敗例を見てみましょう。
法を$6$とすると、
$$
2\cdot3=6\equiv0=2\cdot0\pmod6
$$
です。
ところが、両辺を$2$で割ったつもりで
$$
3\equiv0\pmod6
$$
としてしまうと、これは誤りです。
合同式で法を変えずに割り算をするには、割る数と法が互いに素であることが必要です。その根拠となるのが次の補題です。
$m\geqq2$とします。$c,m$が互いに素であり、$cn$が$m$の倍数ならば、$n$は$m$の倍数です。
数式では、
$$
\gcd(c,m)=1,\qquad m\mid cn
\implies
m\mid n
$$
と表せます。
$n=0$ならば結論は明らかです。
$n\ne0$とします。符号は約数・倍数の関係に影響しないので、必要なら絶対値をとり、正の整数の素因数分解を考えます。
$m$を素因数分解して
$$
m=p_1^{e_1}p_2^{e_2}\cdots p_s^{e_s}
$$
とします。
$c,m$は互いに素なので、$p_1,p_2,\ldots,p_s$のいずれも$|c|$の素因数ではありません。
一方、$m\mid cn$より、$|cn|$の素因数分解には$p_i^{e_i}$がすべて含まれます。これらは$|c|$には含まれないので、すべて$|n|$に含まれなければなりません。
したがって$m\mid n$です。
$$
\gcd(c,m)=1
$$
のとき、
$$
ac\equiv bc\pmod m
\implies
a\equiv b\pmod m
$$
が成り立ちます。
$$
ac\equiv bc\pmod m
$$
ならば、$c(a-b)$は$m$の倍数です。
$c,m$は互いに素なので、ユークリッドの補題より$a-b$は$m$の倍数です。したがって、
$$
a\equiv b\pmod m
$$
となります。
この互いに素という条件は、法を変えずにいつでも約分するために必要です。
実際、$d=\gcd(c,m)>1$とし、
$$
a=\frac{m}{d},\qquad b=0
$$
とおくと、
$$
c(a-b)=c\cdot\frac{m}{d}
=m\cdot\frac{c}{d}
$$
は$m$の倍数なので、$ac\equiv bc\pmod m$です。
しかし、$0< m/d< m$なので、$a-b=m/d$は$m$の倍数ではありません。したがって$a\not\equiv b\pmod m$です。
「合同式における割り算」を、もう少し正確に見てみましょう。
整数$c,u$について、
$$
cu\equiv1\pmod m
$$
が成り立つとき、$u$を法$m$における$c$の逆元といいます。
逆元を$c^{-1}$と表すことがあります。ただし、この記号の意味は法によって変わるため、必ず法を意識する必要があります。
$m\geqq2$とします。
$c$が法$m$において逆元を持つことと、$c,m$が互いに素であることは同値です。
また、逆元は法$m$においてただ一つです。
まず、$cu\equiv1\pmod m$を満たす整数$u$が存在するとします。
ある整数$k$を用いて
$$
cu-km=1
$$
と表せます。$c,m$の共通の正の約数は$cu$と$km$の両方を割るので、その差である$1$も割ります。したがって共通の正の約数は$1$だけであり、$c,m$は互いに素です。
逆に、$c,m$が互いに素であるとします。
$$
c,2c,3c,\ldots,(m-1)c
$$
を$m$で割った余りを考えます。
もし$1\leqq i< j\leqq m-1$について
$$
ic\equiv jc\pmod m
$$
ならば、$c,m$が互いに素なので約分でき、$i\equiv j\pmod m$となります。しかし$0< j-i< m$なので、これは不可能です。
また、$ic\equiv0\pmod m$ならば、同様に約分して$i\equiv0\pmod m$となり、$1\leqq i\leqq m-1$に反します。
したがって、上の$m-1$個の数の余りは、$1,2,\ldots,m-1$を重複なく並べ替えたものです。よって、その中には余りが$1$となるものが必ず存在します。すなわち$c$は逆元を持ちます。
さらに、
$$
cu\equiv cv\equiv1\pmod m
$$
ならば、$c,m$が互いに素なので$cu\equiv cv$の両辺を$c$で約分でき、
$$
u\equiv v\pmod m
$$
となります。したがって逆元は法$m$においてただ一つです。
法を$5$とすると、
$$
2\cdot3=6\equiv1\pmod5
$$
なので、$2$の逆元は$3$です。
このことを
$$
2^{-1}\equiv3\pmod5
$$
と表せます。
例えば、
$$
2x\equiv4\pmod5
$$
を解くとき、両辺に$2$の逆元$3$を掛けると、
$$
x\equiv12\equiv2\pmod5
$$
となります。
つまり、合同式における「$2$で割る」は、正確には「$2$の逆元を掛ける」という操作です。
分数$1/2$をそのまま持ち込むのではなく、法の中で掛けると$1$になる整数を使っているわけです。
割る数と法が互いに素でない場合でも、法を変えれば正確に約分できます。
$d=\gcd(c,m)$とすると、
$$
ac\equiv bc\pmod m
\iff
a\equiv b\pmod{\frac{m}{d}}
$$
が成り立ちます。
$$
c=dc_1,\qquad m=dm_1
$$
とおきます。
$c_1,m_1$が互いに素であることを確認します。
もし正の整数$e$が$c_1,m_1$の共通の約数ならば、$de$は$c,m$の共通の約数です。ところが$d$は$c,m$の最大公約数なので、$de\leqq d$です。したがって$e=1$となり、$c_1,m_1$は互いに素です。
さて、
$$
\begin{aligned}
ac\equiv bc\pmod m
&\iff m\mid c(a-b)\\
&\iff dm_1\mid dc_1(a-b)\\
&\iff m_1\mid c_1(a-b)\\
&\iff m_1\mid(a-b)\\
&\iff a\equiv b\pmod{m_1}
\end{aligned}
$$
です。
最後から二つ目の同値では、$c_1,m_1$が互いに素であることを用いました。$m_1=1$の場合は両側がともに常に成り立ち、$m_1\geqq2$の場合はユークリッドの補題を使えます。
$m_1=m/d$なので、題意が示されました。
先ほどの
$$
2\cdot3\equiv2\cdot0\pmod6
$$
では、$d=\gcd(2,6)=2$です。したがって正しく約分すると、
$$
3\equiv0\pmod3
$$
となります。
式から共通因数を取り除く代わりに、法も最大公約数の分だけ小さくなるわけです。
なお、新しい法が$1$になった場合は、すべての整数が互いに合同なので、結論は自動的に成り立ちます。
積の性質を繰り返し使うと、冪乗について次が得られます。
正の整数$n$について、
$$
a\equiv b\pmod m
\implies
a^n\equiv b^n\pmod m
$$
が成り立ちます。
これは、$a\equiv b$を$n$回掛け合わせれば分かります。
さらに、各項を足し合わせることで、多項式にも拡張できます。
すべての係数が整数である多項式
$$
f(x)=c_nx^n+c_{n-1}x^{n-1}+\cdots+c_1x+c_0
$$
について、
$$
a\equiv b\pmod m
\implies
f(a)\equiv f(b)\pmod m
$$
が成り立ちます。
$a\equiv b\pmod m$ならば、各正の整数$k$について$a^k\equiv b^k\pmod m$です。
その両辺に整数$c_k$を掛け、すべて足し合わせれば、
$$
c_na^n+c_{n-1}a^{n-1}+\cdots+c_1a+c_0
\equiv
c_nb^n+c_{n-1}b^{n-1}+\cdots+c_1b+c_0
\pmod m
$$
となります。これは$f(a)\equiv f(b)\pmod m$を意味します。
この定理により、巨大な数を多項式に代入する場合でも、先にその数を法$m$で小さな代表元に置き換えられます。
$2$の累乗の下一桁は、
$$
2,4,8,6,2,\ldots
$$
と変化します。
実際、$2^5\equiv2\pmod{10}$なので、正の整数$n$について両辺に$2^{n-1}$を掛けると、
$$
2^{n+4}\equiv2^n\pmod{10}
$$
となります。これを繰り返し用います。
$100=4+4\cdot24$より、
$$
2^{100}\equiv2^4\equiv6\pmod{10}
$$
です。したがって、$2^{100}$の下一桁は$6$です。
整数を平方・立方したときに現れる余りには、しばしば強い制限があります。
法を$3$とします。
任意の整数$x$は、$0,1,2$のいずれかと合同なので、
$$
\begin{aligned}
x\equiv0&\implies x^2\equiv0,\\
x\equiv1&\implies x^2\equiv1,\\
x\equiv2\equiv-1&\implies x^2\equiv1
\end{aligned}
\pmod3
$$
です。
したがって、平方数を$3$で割った余りは$0$または$1$に限られ、$2$にはなりません。
次に、法を$4$とします。
任意の整数$x$は
$$
x\equiv0,\pm1,2\pmod4
$$
のいずれかなので、
$$
x^2\equiv0,1,0\pmod4
$$
となります。したがって、平方数を$4$で割った余りも$0$または$1$だけです。
負の代表元を使うと、$1$と$3$をそれぞれ調べる代わりに、$\pm1$をまとめて平方できます。
一般に$m\geqq3$ならば、$1$と$-1$は法$m$で異なるにもかかわらず、
$$
1^2\equiv(-1)^2\pmod m
$$
です。したがって、平方した結果として現れる余りの種類は、もとの$m$種類より必ず少なくなります。
法を$7$とします。
任意の整数$x$は
$$
x\equiv0,\pm1,\pm2,\pm3\pmod7
$$
のいずれかなので、
$$
x^3\equiv0,\pm1,\pm8,\pm27\equiv0,\pm1\pmod7
$$
となります。
したがって、立方数を$7$で割った余りは$0,1,6$、すなわち$0,\pm1$に限られます。
平方の場合の$x$と$-x$は同じ平方になりますが、立方では符号が残ります。そのため、立方剰余では平方剰余ほど単純に余りの種類が減るとは限りません。それでも、法をうまく選ぶと強い制限が現れます。
第4章のフェルマーの小定理を学ぶと、法$7$におけるこの現象を別の角度から説明できるようになります。
$p$を素数とし、$a$を$p$と互いに素な整数とすると、
$$
a^{p-1}\equiv1\pmod p
$$
が成り立ちます。
また、任意の整数$a$について、
$$
a^p\equiv a\pmod p
$$
が成り立ちます。
まず、$a$が$p$と互いに素である場合を考えます。
$$
a,2a,3a,\ldots,(p-1)a
$$
を$p$で割った余りは、すべて異なります。
実際、$1\leqq i< j\leqq p-1$について
$$
ia\equiv ja\pmod p
$$
と仮定すると、$a,p$は互いに素なので両辺を$a$で約分でき、
$$
i\equiv j\pmod p
$$
となります。しかし、$0< j-i< p$なので矛盾です。
また、$ia\equiv0\pmod p$とすると、同様に$i\equiv0\pmod p$となり、$1\leqq i\leqq p-1$に反します。
したがって、これら$p-1$個の数を$p$で割った余りは、$1,2,\ldots,p-1$を重複なく並べ替えたものです。
よって積をとると、
$$
(a)(2a)(3a)\cdots((p-1)a)
\equiv
1\cdot2\cdot3\cdots(p-1)
\pmod p
$$
となります。すなわち、
$$
a^{p-1}(p-1)!\equiv(p-1)!\pmod p
$$
です。
$(p-1)!$は$p$と互いに素なので約分でき、
$$
a^{p-1}\equiv1\pmod p
$$
が得られます。
次に、任意の整数$a$について$a^p\equiv a\pmod p$を示します。
$a$が$p$の倍数ならば、両辺はともに$0$と合同です。
$a$が$p$の倍数でなければ、$p$は素数なので$a,p$は互いに素です。先ほど示した式の両辺に$a$を掛けて、
$$
a^p\equiv a\pmod p
$$
となります。
先ほどの立方剰余を、この定理から見直してみましょう。
$7\nmid x$ならば、フェルマーの小定理より
$$
x^6\equiv1\pmod7
$$
です。したがって、
$$
(x^3-1)(x^3+1)=x^6-1\equiv0\pmod7
$$
となります。
$7$は素数なので、$x^3-1$または$x^3+1$の少なくとも一方が$7$の倍数です。よって、
$$
x^3\equiv\pm1\pmod7
$$
と分かります。
フェルマーの小定理を一般の法に拡張したものが、オイラーの定理です。
$1$以上$m$以下の整数のうち、$m$と互いに素なものの個数を$\phi(m)$と表します。
これをオイラーの$\phi$関数、またはオイラーのトーシェント関数といいます。
例えば、$1$以上$6$以下で$6$と互いに素な整数は$1,5$の二つなので、
$$
\phi(6)=2
$$
です。
また、$\phi(1)=1$とします。
$m\geqq2$とし、$a,m$が互いに素であるとき、
$$
a^{\phi(m)}\equiv1\pmod m
$$
が成り立ちます。
$1$以上$m$以下の整数のうち、$m$と互いに素なものを
$$
r_1,r_2,\ldots,r_{\phi(m)}
$$
とします。
$a$も$m$と互いに素なので、$ar_i$も$m$と互いに素です。実際、$m$の素因数が$ar_i$を割るならば、その素因数は$a$または$r_i$を割ることになり、いずれの場合も互いに素であることに反します。
また、
$$
ar_i\equiv ar_j\pmod m
$$
ならば、$a,m$が互いに素なので約分でき、$r_i\equiv r_j\pmod m$となります。したがって、$ar_1,ar_2,\ldots,ar_{\phi(m)}$の余りはすべて異なります。
よって、これらの余りは$r_1,r_2,\ldots,r_{\phi(m)}$を並べ替えたものです。積をとると、
$$
a^{\phi(m)}r_1r_2\cdots r_{\phi(m)}
\equiv
r_1r_2\cdots r_{\phi(m)}
\pmod m
$$
となります。
$r_1r_2\cdots r_{\phi(m)}$は$m$と互いに素なので約分でき、
$$
a^{\phi(m)}\equiv1\pmod m
$$
が得られます。
$p$が素数ならば、$1,2,\ldots,p-1$はすべて$p$と互いに素なので、
$$
\phi(p)=p-1
$$
です。したがって、オイラーの定理はフェルマーの小定理を含んでいます。
整数$n>1$について、$n$が素数であることと、
$$
(n-1)!\equiv-1\pmod n
$$
が成り立つことは同値です。
まず、$n=p$が素数であるとします。
$1,2,\ldots,p-1$の各整数は$p$と互いに素なので、法$p$において逆元を持ちます。
ある整数$x$が自分自身の逆元であるための条件は、
$$
x^2\equiv1\pmod p
$$
です。このとき、
$$
(x-1)(x+1)\equiv0\pmod p
$$
となります。$p$は素数なので、
$$
x\equiv1\pmod p
\quad\text{または}\quad
x\equiv-1\pmod p
$$
です。
$p$が奇素数ならば、$1$と$p-1$以外の整数は、互いに異なる逆元同士の組に分けられます。各組の積は$1$と合同なので、
$$
(p-1)!\equiv1\cdot(p-1)\equiv-1\pmod p
$$
となります。
$p=2$のときも、
$$
1!\equiv1\equiv-1\pmod2
$$
なので成立します。
逆に、$n>1$が合成数であるとします。
$n=4$ならば、
$$
3!=6\equiv2\not\equiv-1\pmod4
$$
です。
$n>4$ならば、$n=ab$を満たす整数$1< a\leqq b< n$が存在します。
$a< b$ならば、$(n-1)!$の中に$a,b$がともに含まれるので、$n=ab$は$(n-1)!$の約数です。
$a=b$ならば$n=a^2$であり、$n>4$より$a\geqq3$です。このとき
$$
2a\leqq a^2-1=n-1
$$
なので、$a,2a$はともに$1$以上$n-1$以下であり、
$$
a\cdot2a=2n
$$
なので、やはり$n$は$(n-1)!$の約数です。
したがって、合成数$n>4$については
$$
(n-1)!\equiv0\not\equiv-1\pmod n
$$
です。
以上より、同値が示されました。
互いに素な整数$m,n\geqq2$と任意の整数$a,b$について、連立合同式
$$
\begin{cases}
x\equiv a\pmod m,\\
x\equiv b\pmod n
\end{cases}
$$
は、$mn$を法としてただ一つの解を持ちます。
$m,n$は互いに素なので、$m$は法$n$において逆元を持ちます。その逆元を$u$とすると、
$$
mu\equiv1\pmod n
$$
です。
ここで、
$$
x=a+mu(b-a)
$$
とおきます。
法$m$では$mu(b-a)\equiv0$なので、
$$
x\equiv a\pmod m
$$
です。
また、法$n$では$mu\equiv1$なので、
$$
x\equiv a+(b-a)=b\pmod n
$$
です。したがって解は少なくとも一つ存在します。
次に、$x,y$がともにこの連立合同式の解であるとします。
すると$x-y$は$m$の倍数かつ$n$の倍数です。ある整数$k$を用いて$x-y=mk$とおくと、$n\mid mk$です。
$m,n$は互いに素なので、ユークリッドの補題より$n\mid k$です。したがって、$x-y$は$mn$の倍数となり、
$$
x\equiv y\pmod{mn}
$$
です。
よって解は$mn$を法としてただ一つです。
「解が一つ」とは、整数解そのものが一個しかないという意味ではありません。一つの解を$x_0$とすると、すべての整数解は
$$
x=x_0+kmn\qquad(k\text{は整数})
$$
と表され、それらが法$mn$で一つの合同類をつくるという意味です。
ここからは発展的な内容です。
合同式における冪乗の周期を、より正確に捉えていきます。
$m\geqq2$とし、$a,m$が互いに素であるとします。
オイラーの定理より、
$$
a^{\phi(m)}\equiv1\pmod m
$$
なので、$a^n\equiv1\pmod m$となる正の整数$n$は少なくとも一つ存在します。
$$
a^d\equiv1\pmod m
$$
を満たす最小の正の整数$d$を、法$m$における$a$の位数といい、
$$
\operatorname{ord}_m(a)=d
$$
と表します。
$a,m$が互いに素でなければ、位数は定義できません。
実際、$g=\gcd(a,m)>1$とします。もし$a^d\equiv1\pmod m$ならば、ある整数$k$を用いて
$$
a^d-km=1
$$
と表せます。しかし左辺の二つの項はともに$g$の倍数なので、$1$も$g$の倍数となり矛盾です。
$$
\operatorname{ord}_m(a)=d
$$
とすると、任意の正の整数$n$について、
$$
a^n\equiv1\pmod m
\iff
d\mid n
$$
が成り立ちます。
まず$d\mid n$ならば、ある正の整数$k$を用いて$n=dk$と表せます。したがって、
$$
a^n=(a^d)^k\equiv1^k\equiv1\pmod m
$$
です。
逆に、$a^n\equiv1\pmod m$とします。
$n$を$d$で割った商を$q$、余りを$r$とすると、
$$
n=qd+r\qquad(0\leqq r< d)
$$
と表せます。
よって、
$$
a^n=(a^d)^qa^r\equiv a^r\pmod m
$$
です。$a^n\equiv1$なので、$a^r\equiv1\pmod m$となります。
もし$r>0$ならば、$d$より小さい正の整数$r$について$a^r\equiv1$となり、$d$の最小性に反します。したがって$r=0$です。
よって$d\mid n$となります。
オイラーの定理より$a^{\phi(m)}\equiv1\pmod m$なので、直ちに
$$
\operatorname{ord}_m(a)\mid\phi(m)
$$
が得られます。
$$
\operatorname{ord}_m(a)=d
$$
ならば、
$$
a,a^2,\ldots,a^d
$$
は法$m$においてすべて異なります。
$1\leqq i< j\leqq d$について$a^i\equiv a^j\pmod m$と仮定します。
$a,m$は互いに素なので$a^i$も$m$と互いに素です。したがって両辺を$a^i$で約分でき、
$$
a^{j-i}\equiv1\pmod m
$$
となります。
しかし、$1\leqq j-i< d$なので、これは位数$d$の最小性に反します。
$$
\operatorname{ord}_m(a)=d
$$
とし、$k$を正の整数とすると、
$$
\operatorname{ord}_m(a^k)
=
\frac{d}{\gcd(k,d)}
$$
が成り立ちます。
$a^k$も$m$と互いに素なので、その位数は定義できます。
$h=\gcd(k,d)$とし、
$$
k=hu,\qquad d=hv
$$
とおきます。このとき$u,v$は互いに素です。
まず、
$$
(a^k)^v=a^{huv}=a^{ud}=(a^d)^u\equiv1\pmod m
$$
です。
一方、正の整数$t$について$(a^k)^t\equiv1\pmod m$とすると、$a^{kt}\equiv1\pmod m$です。
先ほどの定理より$d\mid kt$なので、
$$
hv\mid hut
$$
すなわち$v\mid ut$です。
$u,v$は互いに素なので、ユークリッドの補題より$v\mid t$となります。
したがって、$(a^k)^t\equiv1$となる正の整数$t$の最小値は$v$です。よって、
$$
\operatorname{ord}_m(a^k)=v
=\frac{d}{\gcd(k,d)}
$$
となります。
ここからは法を素数$p$に限定します。
$p$の倍数でない整数の位数は$p-1$の約数なので、位数として最大になり得る値は$p-1$です。
$p$を素数とします。
$1\leqq r< p$であり、
$$
\operatorname{ord}_p(r)=p-1
$$
を満たす整数$r$を、法$p$における原始根といいます。
特に$p\geqq3$の場合、これは
$$
r^j\not\equiv1\pmod p
\qquad(1\leqq j\leqq p-2)
$$
であり、かつ
$$
r^{p-1}\equiv1\pmod p
$$
です。
法$2$では$1$を原始根とします。
$r$が法$p$における原始根ならば、
$$
r,r^2,\ldots,r^{p-1}
$$
を$p$で割った余りはすべて異なり、$1,2,\ldots,p-1$を重複なく一巡します。
$r$の位数は$p-1$なので、5.2節の補題より
$$
r,r^2,\ldots,r^{p-1}
$$
は法$p$においてすべて異なります。
また、$r$は$p$と互いに素なので、どの累乗も$p$の倍数ではありません。
したがって、これら$p-1$個の余りは、$p$の倍数でない$p-1$種類の余り
$$
1,2,\ldots,p-1
$$
を重複なく並べ替えたものです。
法$7$における$2$と$3$の累乗を比べます。
| $x$ | $x^1$ | $x^2$ | $x^3$ | $x^4$ | $x^5$ | $x^6$ | $\operatorname{ord}_7(x)$ |
|---|---|---|---|---|---|---|---|
| $2$ | $2$ | $4$ | $1$ | $2$ | $4$ | $1$ | $3$ |
| $3$ | $3$ | $2$ | $6$ | $4$ | $5$ | $1$ | $6$ |
$2$は$3$乗ですでに$1$へ戻るので、位数は$3$です。
一方、$3$の位数は$6=p-1$なので、$3$は法$7$における原始根です。実際、
$$
3,2,6,4,5,1
$$
と、$1$から$6$までの余りをすべて一巡しています。
ここからは最上級編です。
前節では原始根を「位数が$p-1$である数」と定義しました。しかし、そもそもそのような数が本当にすべての素数$p$に対して存在するのでしょうか。
この節では、多項式合同式の解の個数とオイラー関数の数え上げを組み合わせて、原始根の存在と個数を証明します。
$p$を素数とし、$n$を正の整数とします。
整数係数$n$次多項式
$$
f(x)=c_nx^n+c_{n-1}x^{n-1}+\cdots+c_1x+c_0
$$
について、$c_n\not\equiv0\pmod p$とします。
このとき、合同方程式
$$
f(x)\equiv0\pmod p
$$
の解は、法$p$において高々$n$個です。
次数$n$に関する数学的帰納法で示します。
まず$n=1$とします。
$$
c_1x+c_0\equiv0\pmod p
$$
において、$c_1\not\equiv0\pmod p$です。$p$は素数なので$c_1,p$は互いに素であり、$c_1$は逆元を持ちます。
したがって、
$$
x\equiv-c_0c_1^{-1}\pmod p
$$
となり、解は高々一個です。
次に、$k$次多項式について定理が成り立つと仮定し、$(k+1)$次多項式$f(x)$を考えます。
$f(x)\equiv0\pmod p$が解を一つも持たない場合、主張は明らかです。
そこで、解を少なくとも一つ持つとし、その一つの代表元を$\alpha$として、$x\equiv\alpha\pmod p$とします。
多項式$f(x)-f(\alpha)$は$x=\alpha$を整数としての解に持つので、因数定理より、整数係数$k$次多項式$q(x)$を用いて
$$
f(x)-f(\alpha)=(x-\alpha)q(x)
$$
と表せます。
$q(x)$の最高次の係数は$f(x)$の最高次の係数と同じなので、$p$の倍数ではありません。したがって、$q(x)$には帰納法の仮定を適用できます。
$f(\alpha)\equiv0\pmod p$なので、
$$
f(x)\equiv(x-\alpha)q(x)\pmod p
$$
です。
ここで、$\beta\not\equiv\alpha\pmod p$を$f(x)\equiv0\pmod p$の別の解とすると、
$$
0\equiv f(\beta)
\equiv(\beta-\alpha)q(\beta)
\pmod p
$$
となります。
$\beta-\alpha\not\equiv0\pmod p$であり、$p$は素数なので、両辺を$\beta-\alpha$で約分できます。よって、
$$
q(\beta)\equiv0\pmod p
$$
です。
したがって、$\alpha$以外の$f(x)\equiv0$の解は、すべて$k$次合同方程式$q(x)\equiv0$の解です。
帰納法の仮定より、$q(x)\equiv0$の解は高々$k$個なので、$f(x)\equiv0$の解は$\alpha$を合わせても高々$k+1$個です。
以上より、任意の正の整数$n$について定理が成り立ちます。
法が合成数の場合、この定理は一般には成り立ちません。
例えば、
$$
x^2\equiv1\pmod8
$$
の解は
$$
x\equiv1,3,5,7\pmod8
$$
の四個あります。
これは、法$8$では
$$
2\cdot4\equiv0\pmod8
$$
であるにもかかわらず、$2,4$のどちらも$0$と合同ではないからです。
素数を法とするときには、「積が$0$と合同ならば少なくとも一方が$0$と合同」という性質が成り立つため、多項式の解の個数を次数以下に抑えられます。
任意の正の整数$n$について、
$$
\sum_{d\mid n}\phi(d)=n
$$
が成り立ちます。
$1,2,\ldots,n$を、$n$との最大公約数によって分類します。
$e$を$n$の正の約数とし、
$$
\gcd(k,n)=e
$$
を満たす$1\leqq k\leqq n$の個数を考えます。
$k=et$、$n=ed$とおくと、
$$
\gcd(k,n)=e
\iff
\gcd(t,d)=1
$$
です。
また、$1\leqq k\leqq n$は$1\leqq t\leqq d$と同値です。したがって、このような$k$の個数は$\phi(d)$個です。
$e$が$n$のすべての約数を動くとき、$d=n/e$も$n$のすべての約数を動きます。
よって、$1,2,\ldots,n$の$n$個の整数をすべて数えると、
$$
\sum_{d\mid n}\phi(d)=n
$$
となります。
例えば$n=6$ならば、約数は$1,2,3,6$なので、
$$
\phi(1)+\phi(2)+\phi(3)+\phi(6)
=1+1+2+2=6
$$
です。
$p$を素数とし、$d$を$p-1$の正の約数とします。
$1$以上$p-1$以下の整数のうち、法$p$における位数が$d$であるものの個数を$N(d)$とすると、
$$
N(d)=0
\quad\text{または}\quad
N(d)=\phi(d)
$$
です。
位数$d$の整数が存在しなければ$N(d)=0$なので、主張は成り立ちます。
そこで、位数$d$の整数$a$が少なくとも一つ存在するとします。
5.2節の補題より、
$$
a,a^2,\ldots,a^d
$$
は法$p$においてすべて異なります。
また、$1\leqq k\leqq d$について、
$$
(a^k)^d=(a^d)^k\equiv1\pmod p
$$
なので、これら$d$個の整数はすべて合同方程式
$$
x^d-1\equiv0\pmod p
$$
の解です。
ラグランジュの定理より、この$d$次合同方程式の解は高々$d$個です。すでに異なる$d$個の解が見つかっているので、解はちょうど
$$
a,a^2,\ldots,a^d
$$
だけです。
位数が$d$である任意の整数は$x^d\equiv1\pmod p$を満たすので、必ずこの中にあります。
5.2節で示した累乗の位数の公式より、
$$
\operatorname{ord}_p(a^k)
=
\frac{d}{\gcd(k,d)}
$$
です。
これが$d$に等しいことと、$\gcd(k,d)=1$であることは同値です。
$1\leqq k\leqq d$のうち$d$と互いに素な整数は、$\phi(d)$個あります。
したがって、位数$d$の整数が一つでも存在するならば、
$$
N(d)=\phi(d)
$$
です。
いよいよ最後です。
任意の素数$p$に対して、法$p$における原始根は必ず存在します。
さらに、その個数は
$$
\phi(p-1)
$$
個です。
$1,2,\ldots,p-1$の各整数$a$について、フェルマーの小定理より
$$
a^{p-1}\equiv1\pmod p
$$
です。
したがって、5.2節の定理より、$a$の位数は必ず$p-1$の約数です。
よって、$p-1$のすべての正の約数$d$について、位数$d$の整数の個数$N(d)$を足すと、
$$
\sum_{d\mid(p-1)}N(d)=p-1
$$
となります。
一方、オイラー関数の約数和より、
$$
\sum_{d\mid(p-1)}\phi(d)=p-1
$$
です。
位数の個数定理より、各$d$について
$$
N(d)=0
\quad\text{または}\quad
N(d)=\phi(d)
$$
です。
もし、ある約数$d$について$N(d)=0$ならば、$\phi(d)\geqq1$なので、
$$
\sum_{d\mid(p-1)}N(d)
<
\sum_{d\mid(p-1)}\phi(d)
$$
となってしまいます。しかし、両方の和は$p-1$に等しいので矛盾です。
したがって、すべての$d\mid(p-1)$について
$$
N(d)=\phi(d)
$$
です。
特に$d=p-1$とすると、位数$p-1$の整数、すなわち原始根の個数は
$$
N(p-1)=\phi(p-1)
$$
です。
$\phi(p-1)\geqq1$なので、原始根は必ず存在します。
今回は、合同式の定義から四則演算、逆元、冪乗の剰余、フェルマーの小定理、位数、原始根までを扱いました。
すべてを一度に覚える必要はありません。
まずは、
$$
a\equiv b\pmod m
\iff
a-b\text{が}m\text{の倍数}
$$
という定義と、和・差・積は自由に扱える一方、割り算には互いに素という条件が必要であることを押さえてみてください。
そこから先の定理は、必要になったときに戻って確認すれば大丈夫です。
次回の【活用編】では、