§A4.7フェルマーの小定理とオイラーの定理

最終更新

フェルマーの小定理とは、ppが素数でppがaaを割り切らないとき、

ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p

が成り立つ、という定理です。証明の骨格は「並べ替え」の観察にあります。

1 フェルマーの小定理

定理 1.1.ppを素数、aaをp∤ap\nmid aを満たす整数とすると、

ap−1≡1(modp)a^{p-1}\equiv1\pmod p

が成り立つ。

証明.1≤i,j≤p−11\le i,j\le p-1を満たす整数i,ji,jを取る。p∤ip\nmid iかつp∤ap\nmid aなので、§A4.2 補題 2.1によりp∤iap\nmid iaである。したがってiaiaの法ppにおける余りは1,2,…,p−11,2,\ldots,p-1のいずれかである。ia≡ja(modp)ia\equiv ja\pmod pならばp∣(i−j)ap\mid(i-j)aであり、同じ補題とp∤ap\nmid aからp∣i−jp\mid i-jを得る。1≤i,j≤p−11\le i,j\le p-1なので∣i−j∣<p|i-j|<pであり、i=ji=jとなる。よってa,2a,…,(p−1)aa,2a,\ldots,(p-1)aの余りは互いに異なり、1,2,…,p−11,2,\ldots,p-1の並べ替えになる。

両方の積を取ると

(p−1)! ap−1≡(p−1)!(modp)(p-1)!\,a^{p-1}\equiv(p-1)!\pmod p

を得る。§A4.2 補題 2.1を繰り返し用いると、ppは(p−1)!(p-1)!を割り切らないので、gcd⁡((p−1)!,p)=1\gcd((p-1)!,p)=1である。したがって§A4.5 命題 3.2により(p−1)!(p-1)!を消去して、ap−1≡1(modp)a^{p-1}\equiv1\pmod pを得る。▨

2 オイラーの定理

法が合成数の場合には、法と互いに素な整数を用いて同じ議論を行います。

定義 2.1 (既約剰余系). 整数n≥2n\ge2に対し、nnと互いに素な剰余類から代表を一つずつ選んだ組を、法nnの既約剰余系 (reduced residue system) という。

11以上nn以下でnnと互いに素な整数の全体は、法nnの既約剰余系です。その個数をφ(n)\varphi(n)と書きます。

定理 2.2.n≥2n\ge2を整数、aaをgcd⁡(a,n)=1\gcd(a,n)=1を満たす整数とすると、

aφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod n

が成り立つ。

証明.11以上nn以下でnnと互いに素な整数をr1,…,rφ(n)r_1,\ldots,r_{\varphi(n)}とする。各ariar_iはnnと互いに素である。実際、nnとariar_iに共通する素因数があれば、§A4.2 補題 2.1により、その素数はa,ria,r_iのどちらかを割り切り、gcd⁡(a,n)=gcd⁡(ri,n)=1\gcd(a,n)=\gcd(r_i,n)=1に反する。ariar_iの法nnにおける余りもnnと互いに素であるので、その余りはr1,…,rφ(n)r_1,\ldots,r_{\varphi(n)}のいずれかに等しい。ari≡arj(modn)ar_i\equiv ar_j\pmod nならば、gcd⁡(a,n)=1\gcd(a,n)=1と§A4.5 命題 3.2によってaaを消去してri≡rj(modn)r_i\equiv r_j\pmod nを得る。ri,rjr_i,r_jは11以上nn以下なので∣ri−rj∣<n|r_i-r_j|<nであり、ri=rjr_i=r_jとなる。したがって、ar1,…,arφ(n)ar_1,\ldots,ar_{\varphi(n)}の余りはr1,…,rφ(n)r_1,\ldots,r_{\varphi(n)}の並べ替えになる。

R=r1⋯rφ(n)R=r_1\cdots r_{\varphi(n)}とおく。両方の積を取ると

aφ(n)R≡R(modn)a^{\varphi(n)}R\equiv R\pmod n

を得る。各rir_iはnnと互いに素なので、§A4.2 補題 2.1を繰り返し用いると、nnのどの素因数もRRを割り切らない。よってgcd⁡(R,n)=1\gcd(R,n)=1であり、§A4.5 命題 3.2によりRRを消去してaφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod nを得る。▨

注意 2.3. 法11では、任意の二整数の差が11で割り切れるので、すべての整数は互いに合同である。φ(1)=1\varphi(1)=1であり、任意の整数aaに対してaφ(1)≡1(mod1)a^{\varphi(1)}\equiv1\pmod1が成り立つ。

素数ppに対してはφ(p)=p−1\varphi(p)=p-1なので、フェルマーの小定理はオイラーの定理の特別な場合です。

3 累乗の周期と指数の縮約

命題 3.1.n≥2n\ge2を整数、aaをgcd⁡(a,n)=1\gcd(a,n)=1を満たす整数とする。任意の非負整数kkに対して

ak+φ(n)≡ak(modn)a^{k+\varphi(n)}\equiv a^k\pmod n

が成り立つ。また、非負整数mmをφ(n)\varphi(n)で割った余りをrrとすると、

am≡ar(modn)a^m\equiv a^r\pmod n

が成り立つ。

証明.定理 2.2によりaφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod nである。両辺にaka^kを掛けると、最初の合同式を得る。m=qφ(n)+rm=q\varphi(n)+r、q≥0q\ge0、0≤r<φ(n)0\le r<\varphi(n)と書くと、

am=(aφ(n))qar≡ar(modn)a^m=(a^{\varphi(n)})^qa^r\equiv a^r\pmod n

である。▨

注意 3.2.φ(n)\varphi(n)は累乗の余りの周期の一つであり、最小の正の周期とは限らない。例えばa=1,n=5a=1,n=5なら、すべての非負整数kkに対して1k≡1(mod5)1^k\equiv1\pmod5なので、最小の正の周期は11であるが、φ(5)=4\varphi(5)=4である。

例 3.3.31003^{100}を77で割った余りを求める。77は素数で7∤37\nmid3なので、定理 1.1より36≡1(mod7)3^6\equiv1\pmod7である。100=6⋅16+4100=6\cdot16+4より

3100≡(36)1634≡34(mod7)3^{100}\equiv(3^6)^{16}3^4\equiv3^4\pmod7

となる。31≡33^1\equiv3、32≡23^2\equiv2、33≡63^3\equiv6、34≡4(mod7)3^4\equiv4\pmod7なので、求める余りは44である。

問題 3.4.210002^{1000}を100100で割った余りを求めよ。

解答.

gcd⁡(2,100)=2\gcd(2,100)=2なので、法100100にオイラーの定理を直接適用することはできない。100=4⋅25100=4\cdot25と分ける。1000≥21000\ge2なので、21000≡0(mod4)2^{1000}\equiv0\pmod4である。11以上2525以下で2525と互いに素でない整数は5,10,15,20,255,10,15,20,25の五つなので、φ(25)=20\varphi(25)=20である。gcd⁡(2,25)=1\gcd(2,25)=1だから、定理 2.2より220≡1(mod25)2^{20}\equiv1\pmod{25}であり、

21000=(220)50≡1(mod25)2^{1000}=(2^{20})^{50}\equiv1\pmod{25}

となる。

求める余りをrrとすると、r≡1(mod25)r\equiv1\pmod{25}よりr=1+25tr=1+25tと書くことができる。法44では0≡1+t0\equiv1+tなので、t≡3(mod4)t\equiv3\pmod4となる。したがってr≡76(mod100)r\equiv76\pmod{100}であり、0≤r<1000\le r<100より、求める余りは7676である。44と2525は互いに素なので、§A4.6 補題 2.1によって、二つの余りの条件を満たす剰余類は法100100でただ一つである。▨

4 擬素数と合成数判定

定義 4.1 (擬素数とカーマイケル数).aaを整数とする。合成数nnがgcd⁡(a,n)=1\gcd(a,n)=1かつan−1≡1(modn)a^{n-1}\equiv1\pmod nを満たすとき、nnを底aaの擬素数 (pseudoprime) という。任意の整数aaについて、gcd⁡(a,n)=1\gcd(a,n)=1ならばan−1≡1(modn)a^{n-1}\equiv1\pmod nとなる合成数nnを、カーマイケル数 (Carmichael number) という。

例 4.2.341=11⋅31341=11\cdot31は合成数であるが、210=1024=3⋅341+12^{10}=1024=3\cdot341+1なので、

2340=(210)34≡1(mod341)2^{340}=(2^{10})^{34}\equiv1\pmod{341}

となる。したがって341341は底22の擬素数であり、フェルマーの小定理の逆は成り立たない。

例 4.3.561=3⋅11⋅17561=3\cdot11\cdot17はカーマイケル数である。実際、gcd⁡(a,561)=1\gcd(a,561)=1を満たす整数aaを取ると、aaは3,11,173,11,17のいずれでも割り切れない。定理 1.1により、a2≡1(mod3)a^2\equiv1\pmod3、a10≡1(mod11)a^{10}\equiv1\pmod{11}、a16≡1(mod17)a^{16}\equiv1\pmod{17}である。2,10,162,10,16はすべて560560を割り切るので、a560−1a^{560}-1は3,11,173,11,17のそれぞれで割り切れる。相異なる素因数の積もa560−1a^{560}-1を割り切るので、a560≡1(mod561)a^{560}\equiv1\pmod{561}となる。

命題 4.4. 整数n≥2n\ge2に対して、gcd⁡(a,n)=1\gcd(a,n)=1かつan−1≢1(modn)a^{n-1}\not\equiv1\pmod nを満たす整数aaが存在すれば、nnは合成数である。

証明.nnが素数であれば、gcd⁡(a,n)=1\gcd(a,n)=1からn∤an\nmid aとなり、定理 1.1によりan−1≡1(modn)a^{n-1}\equiv1\pmod nとなる。したがって、仮定を満たすaaが存在するとき、nnは素数ではない。n≥2n\ge2なので、nnは合成数である。▨

nnと互いに素な底aaを選び、an−1a^{n-1}の余りを調べる方法をフェルマーテストといいます。余りが11でなければ合成数と判定することができますが、余りが11でも素数と確定することはできません。フェルマーテストは、ミラー–ラビン法などの確率的素数判定法の出発点となる方法です。

閑話休題:フェルマーとオイラーの証明史 フェルマーは1640年のフレニクル・ド・ベシー宛の手紙で小定理を述べ、証明が長いため送らないと記したと伝えられています。小定理の最初の公刊された証明はオイラーによるもので、原論文は1736年に執筆され、1741年に公刊されました(Euler Archive の書誌と原論文)。フェルマーの最終定理でも、フェルマー自身は証明を残さず、1995年にワイルズによる証明が公刊されました。

例題

条件と何を求めるかを確認してから、式と答えの対応を見比べてください。

次のべき乗を、指定された法で計算せよ(フェルマーの小定理・オイラーの定理で指数を落とすこと)。

解法の型gcd(a,n)=1gcd(a,n)=1 のとき aϕ(n)a^\phi(n)≡\equiv 1 (mod n)(n が素数 p なら a^(p−1) ≡\equiv 1)。指数を ϕ(n)\phi(n) で割った余りに落とす

  1. 4^54 を 11 で割った余りを求めよ。

    454 mod 114^{54} \bmod 11
  2. 5^355 を 23 で割った余りを求めよ。

    5355 mod 235^{355} \bmod 23
  3. 3^130 を 7 で割った余りを求めよ。

    3130 mod 73^{130} \bmod 7
  4. 5^178 を 17 で割った余りを求めよ。

    5178 mod 175^{178} \bmod 17
  5. 4^110 を 7 で割った余りを求めよ。

    4110 mod 74^{110} \bmod 7
  6. 9^332 を 23 で割った余りを求めよ。

    9332 mod 239^{332} \bmod 23
  7. 8^196 を 17 で割った余りを求めよ。

    8196 mod 178^{196} \bmod 17
  8. 5^137 を 21 で割った余りを求めよ。

    5137 mod 215^{137} \bmod 21
  9. 8^111 を 13 で割った余りを求めよ。

    8111 mod 138^{111} \bmod 13
  10. 3^360 を 35 で割った余りを求めよ。

    3360 mod 353^{360} \bmod 35

演習

問題を解いてから「解答・解説」を開けます。

次のべき乗を、指定された法で計算せよ(フェルマーの小定理・オイラーの定理で指数を落とすこと)。

演習を読み込み中…

前提記事