1 フェルマーの小定理
定理 1.1.pを素数、aをp∤aを満たす整数とすると、
ap−1≡1(modp)が成り立つ。
証明.1≤i,j≤p−1を満たす整数i,jを取る。p∤iかつp∤aなので、§A4.2 補題 2.1によりp∤iaである。したがってiaの法pにおける余りは1,2,…,p−1のいずれかである。ia≡ja(modp)ならばp∣(i−j)aであり、同じ補題とp∤aからp∣i−jを得る。1≤i,j≤p−1なので∣i−j∣<pであり、i=jとなる。よってa,2a,…,(p−1)aの余りは互いに異なり、1,2,…,p−1の並べ替えになる。
両方の積を取ると
(p−1)!ap−1≡(p−1)!(modp)を得る。§A4.2 補題 2.1を繰り返し用いると、pは(p−1)!を割り切らないので、gcd((p−1)!,p)=1である。したがって§A4.5 命題 3.2により(p−1)!を消去して、ap−1≡1(modp)を得る。▨
2 オイラーの定理
法が合成数の場合には、法と互いに素な整数を用いて同じ議論を行います。
定義 2.1 (既約剰余系). 整数n≥2に対し、nと互いに素な剰余類から代表を一つずつ選んだ組を、法nの既約剰余系 (reduced residue system) という。
1以上n以下でnと互いに素な整数の全体は、法nの既約剰余系です。その個数をφ(n)と書きます。
定理 2.2.n≥2を整数、aをgcd(a,n)=1を満たす整数とすると、
aφ(n)≡1(modn)が成り立つ。
証明.1以上n以下でnと互いに素な整数をr1,…,rφ(n)とする。各ariはnと互いに素である。実際、nとariに共通する素因数があれば、§A4.2 補題 2.1により、その素数はa,riのどちらかを割り切り、gcd(a,n)=gcd(ri,n)=1に反する。ariの法nにおける余りもnと互いに素であるので、その余りはr1,…,rφ(n)のいずれかに等しい。ari≡arj(modn)ならば、gcd(a,n)=1と§A4.5 命題 3.2によってaを消去してri≡rj(modn)を得る。ri,rjは1以上n以下なので∣ri−rj∣<nであり、ri=rjとなる。したがって、ar1,…,arφ(n)の余りはr1,…,rφ(n)の並べ替えになる。
R=r1⋯rφ(n)とおく。両方の積を取ると
aφ(n)R≡R(modn)を得る。各riはnと互いに素なので、§A4.2 補題 2.1を繰り返し用いると、nのどの素因数もRを割り切らない。よってgcd(R,n)=1であり、§A4.5 命題 3.2によりRを消去してaφ(n)≡1(modn)を得る。▨
素数pに対してはφ(p)=p−1なので、フェルマーの小定理はオイラーの定理の特別な場合です。
3 累乗の周期と指数の縮約
命題 3.1.n≥2を整数、aをgcd(a,n)=1を満たす整数とする。任意の非負整数kに対して
ak+φ(n)≡ak(modn)が成り立つ。また、非負整数mをφ(n)で割った余りをrとすると、
am≡ar(modn)が成り立つ。
証明.定理 2.2によりaφ(n)≡1(modn)である。両辺にakを掛けると、最初の合同式を得る。m=qφ(n)+r、q≥0、0≤r<φ(n)と書くと、
am=(aφ(n))qar≡ar(modn)である。▨
例 3.3.3100を7で割った余りを求める。7は素数で7∤3なので、定理 1.1より36≡1(mod7)である。100=6⋅16+4より
3100≡(36)1634≡34(mod7)となる。31≡3、32≡2、33≡6、34≡4(mod7)なので、求める余りは4である。
問題 3.4.21000を100で割った余りを求めよ。
解答.
gcd(2,100)=2なので、法100にオイラーの定理を直接適用することはできない。100=4⋅25と分ける。1000≥2なので、21000≡0(mod4)である。1以上25以下で25と互いに素でない整数は5,10,15,20,25の五つなので、φ(25)=20である。gcd(2,25)=1だから、定理 2.2より220≡1(mod25)であり、
21000=(220)50≡1(mod25)となる。
求める余りをrとすると、r≡1(mod25)よりr=1+25tと書くことができる。法4では0≡1+tなので、t≡3(mod4)となる。したがってr≡76(mod100)であり、0≤r<100より、求める余りは76である。4と25は互いに素なので、§A4.6 補題 2.1によって、二つの余りの条件を満たす剰余類は法100でただ一つである。▨
4 擬素数と合成数判定
定義 4.1 (擬素数とカーマイケル数).aを整数とする。合成数nがgcd(a,n)=1かつan−1≡1(modn)を満たすとき、nを底aの擬素数 (pseudoprime) という。任意の整数aについて、gcd(a,n)=1ならばan−1≡1(modn)となる合成数nを、カーマイケル数 (Carmichael number) という。
例 4.2.341=11⋅31は合成数であるが、210=1024=3⋅341+1なので、
2340=(210)34≡1(mod341)となる。したがって341は底2の擬素数であり、フェルマーの小定理の逆は成り立たない。
例 4.3.561=3⋅11⋅17はカーマイケル数である。実際、gcd(a,561)=1を満たす整数aを取ると、aは3,11,17のいずれでも割り切れない。定理 1.1により、a2≡1(mod3)、a10≡1(mod11)、a16≡1(mod17)である。2,10,16はすべて560を割り切るので、a560−1は3,11,17のそれぞれで割り切れる。相異なる素因数の積もa560−1を割り切るので、a560≡1(mod561)となる。
命題 4.4. 整数n≥2に対して、gcd(a,n)=1かつan−1≡1(modn)を満たす整数aが存在すれば、nは合成数である。
証明.nが素数であれば、gcd(a,n)=1からn∤aとなり、定理 1.1によりan−1≡1(modn)となる。したがって、仮定を満たすaが存在するとき、nは素数ではない。n≥2なので、nは合成数である。▨
nと互いに素な底aを選び、an−1の余りを調べる方法をフェルマーテストといいます。余りが1でなければ合成数と判定することができますが、余りが1でも素数と確定することはできません。フェルマーテストは、ミラー–ラビン法などの確率的素数判定法の出発点となる方法です。
閑話休題:フェルマーとオイラーの証明史 フェルマーは1640年のフレニクル・ド・ベシー宛の手紙で小定理を述べ、証明が長いため送らないと記したと伝えられています。小定理の最初の公刊された証明はオイラーによるもので、原論文は1736年に執筆され、1741年に公刊されました(Euler Archive の書誌と原論文)。フェルマーの最終定理でも、フェルマー自身は証明を残さず、1995年にワイルズによる証明が公刊されました。