コンテンツにスキップ

整数の性質 II:合同式・位数・循環小数・ピタゴラス数・Pell 方程式

対象読者: 本テーマ第 5 章(約数・互除法・n 進法)の内容を学んだ高校生。合同式の記号は初めてでもよく、群論や大学の整数論は仮定しません。

前提となる記事:整数の性質 I:約数・互除法・n 進法・連分数

生 Markdown

「2 の 100 乗の末尾 2 桁は」「1/71/7 を小数にすると、なぜ同じ数字が繰り返すのか」といった素朴な疑問は、整数を割った余りだけに注目すると、見通しよく答えられます。この記事では、余りで整数を扱う記法(合同式)を使って、倍数の見分け方、冪の余りが繰り返す仕組み、循環小数、直角三角形の辺の整数比、x2−2y2=1x^2-2y^2=1 のような方程式の整数解を、同じ考え方で説明します。読み終えると、これらの問題を余りの計算に置き換えて解けるようになります。

  • 合同式の計算規則・消去法則・Euler の定理・Fermat の小定理・中国剰余定理は、大学の初等整数論の記事に証明があります。この記事ではそれらを <Ref> で指し、高校の問題でよく使う形に仕立てます。
  • 倍数の判定法(3・9・11 の倍数、7⋅11⋅13=10017\cdot11\cdot13=1001 による判定)は、10≡110\equiv1、10≡−110\equiv-1、1000≡−11000\equiv-1 という合同式の言い換えです。
  • 法 mm での aa の位数は ak≡1a^k\equiv1 となる最小の kk。ak≡1a^k\equiv1 となる kk はすべて位数の倍数で、位数は φ(m)\varphi(m) の約数です。冪の余りは位数を周期として繰り返します。
  • Wilson の定理: 素数 pp について (p−1)!≡−1(modp)(p-1)!\equiv-1\pmod p。逆も成り立ち、素数判定の条件になります。
  • 有理数の小数展開は有限小数か循環小数で、循環節の長さは 10 の位数です。
  • 原始ピタゴラス数は (m2−n2, 2mn, m2+n2)(m^2-n^2,\,2mn,\,m^2+n^2) の形に限り、単位円上の有理点は有理数 tt でパラメータ表示できます。
  • Pell 方程式 x2−dy2=1x^2-dy^2=1(dd は平方数でない)には必ず正の整数解があり(Dirichlet の近似定理と鳩の巣原理で証明します)、正の解は最小解の冪で尽くされます。

高校の整数問題では、合同式を使うと見通しがよくなる場面が多くあります。「21002^{100} の末尾 2 桁」「ある数が 7 の倍数か」「1/71/7 の小数展開が 142857142857 の繰り返しになる理由」「x2−2y2=1x^2-2y^2=1 の整数解を全部求めよ」。これらはバラバラの問題に見えて、すべて剰余類の乗法(位数・単元)の話です。

この記事は、前の記事(整数の性質 I)で作った道具(付値(素数 pp が何回割り切れるかを表す数)・Bézout・連分数)に、合同式の言葉を加えて、これらの問題を同じ土台で証明します。

2. 合同式の計算と倍数の判定法

Section titled “2. 合同式の計算と倍数の判定法”

整数 a,ba,b と正の整数 mm について、m∣(a−b)m\mid(a-b) のとき a≡b(modm)a\equiv b\pmod m と書きます(定義 3.1[合同式とフェルマーの小定理])。和・差・積・冪は、合同式の両辺に使えます(命題 3.3[合同式とフェルマーの小定理])。割り算は注意が必要で、ca≡cb(modm)ca\equiv cb\pmod m から a≡ba\equiv b が言えるのは gcd⁡(c,m)=1\gcd(c,m)=1 のときだけです(命題 3.6[合同式とフェルマーの小定理])。より正確には ca≡cb(modm)  ⟺  a≡b(modm/gcd⁡(c,m))ca\equiv cb\pmod m\iff a\equiv b\pmod{m/\gcd(c,m)}。

たとえば法 66 で 2⋅1=22\cdot1=2 と 2⋅4=82\cdot4=8 は合同(差が 66)ですが、11 と 44 は合同ではありません(差が 33)。gcd⁡(2,6)=2\gcd(2,6)=2 で、割れるのは法を 6/2=36/2=3 に縮めたときだけで、実際 1≡4(mod3)1\equiv4\pmod3 です。

命題 2.1(倍数の判定法)✓

正の整数 NN の 10 進表示を N=∑i=0kdi10iN=\sum_{i=0}^kd_i10^i(0≤di≤90\le d_i\le9)とする。

  1. N≡∑idi(mod9)N\equiv\sum_id_i\pmod9。したがって 99(および 33)で割り切れるための必要十分条件は、各位の数字の和が 99(33)で割り切れること。
  2. N≡∑i(−1)idi(mod11)N\equiv\sum_i(-1)^id_i\pmod{11}。1111 で割り切れるのは、交代和 d0−d1+d2−⋯d_0-d_1+d_2-\cdots が 1111 で割り切れるとき。
  3. NN を下から 3 桁ずつの組 g0,g1,…g_0,g_1,\dots に分けて N=∑jgj1000jN=\sum_jg_j1000^j とすると、N≡∑j(−1)jgj(mod1001)N\equiv\sum_j(-1)^jg_j\pmod{1001}。1001=7⋅11⋅131001=7\cdot11\cdot13 なので、NN が 77 や 1111 や 1313 で割り切れるかは、この交代和でも判定できる。
  4. NN を 2e2^e や 5e5^e(e≤k+1e\le k+1)で割った余りは、下 ee 桁の数で決まる。とくに 44 で割り切れるかは下 2 桁、88 で割り切れるかは下 3 桁で決まる。
証明(命題 2.1)
  1. 10≡1(mod9)10\equiv1\pmod9 なので 命題 3.3[合同式とフェルマーの小定理] から 10i≡110^i\equiv1、N≡∑diN\equiv\sum d_i。3∣93\mid9 なので (mod3)\pmod3 でも同じ。
  2. 10≡−1(mod11)10\equiv-1\pmod{11} から 10i≡(−1)i10^i\equiv(-1)^i。
  3. 1000=1001−1≡−1(mod1001)1000=1001-1\equiv-1\pmod{1001} から 1000j≡(−1)j1000^j\equiv(-1)^j。
  4. 10i10^i は i≥ei\ge e で 2e2^e の倍数かつ 5e5^e の倍数(10e=2e5e10^e=2^e5^e)なので、N≡∑i<edi10i(mod2e)N\equiv\sum_{i<e}d_i10^i\pmod{2^e}、(mod5e)\pmod{5^e}。

例 2.2(1234567 は 7 の倍数か)

12345671234567 を 3 桁ずつに分けて 1∣234∣5671|234|567。交代和は 567−234+1=334567-234+1=334。334=7⋅47+5334=7\cdot47+5 なので 77 で割り切れず、余りは 55 です(命題 2.1 の 3. は、余りまで (mod1001)\pmod{1001} で保つので、1234567≡334(mod1001)1234567\equiv334\pmod{1001}、したがって  mod 7\bmod7 で 334≡5334\equiv5)。実際 1234567=7⋅176366+51234567=7\cdot176366+5 です。

定義 3.1(位数)↗

m≥2m\ge2 を整数、aa を gcd⁡(a,m)=1\gcd(a,m)=1 の整数とする。ak≡1(modm)a^k\equiv1\pmod m となる最小の正の整数 kk を、法 mm における aa の位数といい ord⁡m(a)\operatorname{ord}_m(a) と書く。

Euler の定理(定理 5.3[合同式とフェルマーの小定理])から aφ(m)≡1a^{\varphi(m)}\equiv1 なので、k=φ(m)k=\varphi(m) は条件を満たし、位数は存在します。

定理 3.2(位数は φ(m) を割る)✓

gcd⁡(a,m)=1\gcd(a,m)=1、d=ord⁡m(a)d=\operatorname{ord}_m(a) とする。正の整数 kk について ak≡1(modm)  ⟺  d∣ka^k\equiv1\pmod m\iff d\mid k。とくに d∣φ(m)d\mid\varphi(m) である。

証明(定理 3.2)

d∣kd\mid k なら k=djk=dj で ak=(ad)j≡1j=1a^k=(a^d)^j\equiv1^j=1(命題 3.3[合同式とフェルマーの小定理])。逆に ak≡1a^k\equiv1 とする。除法の原理(定理 2.1[合同式とフェルマーの小定理])で k=qd+rk=qd+r(0≤r<d0\le r<d)。ak=(ad)qar≡ara^k=(a^d)^qa^r\equiv a^r なので ar≡1a^r\equiv1。dd の最小性から r=0r=0、すなわち d∣kd\mid k。最後に Euler の定理(定理 5.3)[合同式とフェルマーの小定理] より aφ(m)≡1a^{\varphi(m)}\equiv1 なので d∣φ(m)d\mid\varphi(m)。

大学では、これは群 (Z/mZ)×(\mathbb{Z}/m\mathbb{Z})^\times の元の位数が群の位数を割る、という Lagrange の定理の特別な場合です(Euler の定理と Fermat の小定理(定理 7.3)[部分群と剰余類])。

命題 3.3(冪の余りの周期)✓

gcd⁡(a,m)=1\gcd(a,m)=1、d=ord⁡m(a)d=\operatorname{ord}_m(a) とする。すべての整数 k,l≥0k,l\ge0 について ak≡al(modm)  ⟺  k≡l(modd)a^k\equiv a^l\pmod m\iff k\equiv l\pmod d。したがって ak mod ma^k\bmod m は dd を周期として繰り返し、最小の周期はちょうど dd である。

証明(命題 3.3)

k≥lk\ge l とする。gcd⁡(a,m)=1\gcd(a,m)=1 なので 命題 3.6[合同式とフェルマーの小定理] により ala^l を両辺から消去できて、ak≡al  ⟺  ak−l≡1a^k\equiv a^l\iff a^{k-l}\equiv1(gcd⁡(al,m)=1\gcd(a^l,m)=1 に注意。⇐\Leftarrow は両辺に ala^l を掛ければよい)。k=lk=l なら両辺とも成り立ち d∣0d\mid0 も成り立つ。k>lk>l なら ak−l≡1a^{k-l}\equiv1 は 定理 3.2 から d∣(k−l)d\mid(k-l) と同値。

例 3.4(冪の下 2 桁)

72=497^2=49、74=2401≡1(mod100)7^4=2401\equiv1\pmod{100} なので ord⁡100(7)∣4\operatorname{ord}_{100}(7)\mid4、また 72=49≢17^2=49\not\equiv1 だから位数は 44。2026=4⋅506+22026=4\cdot506+2 より 72026≡72=49(mod100)7^{2026}\equiv7^2=49\pmod{100}。下 2 桁は 4949 です。位数が分かれば、巨大な冪の余りは周期で圧縮できます。Fermat の小定理(定理 5.1[合同式とフェルマーの小定理])を使って 7100 mod 137^{100}\bmod13 を計算すると、712≡17^{12}\equiv1 より 7100=796⋅74≡74=2401≡97^{100}=7^{96}\cdot7^4\equiv7^4=2401\equiv9(2401=13⋅184+92401=13\cdot184+9)です。

定理 4.1(Wilson の定理とその逆)✓

n≥2n\ge2 を整数とする。nn が素数であることと、(n−1)!≡−1(modn)(n-1)!\equiv-1\pmod n であることは同値である。

素数 pp のとき、証明では 1,…,p−11,\dots,p-1 を、掛けて 11 になる相手(法 pp の逆元)どうしでペアにします。たとえば p=7p=7 なら 2⋅4=8≡12\cdot4=8\equiv1、3⋅5=15≡13\cdot5=15\equiv1 で、残るのは 11 と 6≡−16\equiv-1 だけです。ペアの積は 11 なので、6!≡1⋅1⋅1⋅6≡−16!\equiv1\cdot1\cdot1\cdot6\equiv-1 となります。自分自身とペアになる数が 11 と p−1p-1 だけであることを示すのが、証明の要点です。

証明(定理 4.1)

(素数ならば) n=pn=p が素数とする。p=2p=2 のとき 1!=1≡−1(mod2)1!=1\equiv-1\pmod2。p≥3p\ge3 とする。1,…,p−11,\dots,p-1 の各 aa は gcd⁡(a,p)=1\gcd(a,p)=1 なので 命題 4.4[合同式とフェルマーの小定理] により法 pp の逆元 a′a'(aa′≡1aa'\equiv1)が {1,…,p−1}\{1,\dots,p-1\} の中にただ 1 つある。a′=aa'=a、すなわち a2≡1a^2\equiv1 のとき p∣(a−1)(a+1)p\mid(a-1)(a+1) で、素数に関する Euclid の補題(補題 4.1)[素数の魅力と素数定理] から a≡1a\equiv1 か a≡−1a\equiv-1、すなわち a=1a=1 か a=p−1a=p-1。それ以外の a∈{2,…,p−2}a\in\{2,\dots,p-2\} は、a≠a′a\ne a' の組 {a,a′}\{a,a'\} に分かれ(a′∈{2,…,p−2}a'\in\{2,\dots,p-2\}:a′≡1a'\equiv1 なら a≡1a\equiv1、a′≡−1a'\equiv-1 なら a≡−1a\equiv-1 になってしまうので)、各組の積は aa′≡1aa'\equiv1。よって 2⋅3⋯(p−2)≡12\cdot3\cdots(p-2)\equiv1、(p−1)!=1⋅(2⋯(p−2))⋅(p−1)≡p−1≡−1(p-1)!=1\cdot(2\cdots(p-2))\cdot(p-1)\equiv p-1\equiv-1。 (逆) nn が素数でないとする。n≥2n\ge2 なので 1<a<n1<a<n の約数 aa がある。a≤n−1a\le n-1 だから a∣(n−1)!a\mid(n-1)!。もし (n−1)!≡−1(modn)(n-1)!\equiv-1\pmod n なら n∣(n−1)!+1n\mid(n-1)!+1 で、a∣na\mid n だから a∣(n−1)!+1a\mid(n-1)!+1。a∣(n−1)!a\mid(n-1)! と合わせて a∣1a\mid1 となり、a>1a>1 に反する。ゆえに (n−1)!≢−1(n-1)!\not\equiv-1。

例 4.2(Wilson の定理で階乗の余りを求める)

p=23p=23 で 22!≡−1(mod23)22!\equiv-1\pmod{23}。22!=22⋅21⋅20!≡(−1)(−2)⋅20!=2⋅20!22!=22\cdot21\cdot20!\equiv(-1)(-2)\cdot20!=2\cdot20! なので 2⋅20!≡−1≡222\cdot20!\equiv-1\equiv22、20!≡11(mod23)20!\equiv11\pmod{23}(2⋅11=22≡−12\cdot11=22\equiv-1)。Wilson の定理は素数判定のアルゴリズムとしては (n−1)!(n-1)! の計算が重すぎて実用になりませんが、「合成数でも素数でも、階乗の余りがこれほど鮮やかに分かれる」ことを示しています。

実数 0≤x<10\le x<1 の小数展開 0.d1d2d3⋯0.d_1d_2d_3\cdots とは、部分和 sn=∑k≤ndk10−ks_n=\sum_{k\le n}d_k10^{-k} の上限が xx であることをいいます(定義 6.1[数とは何か])。有理数 a/ba/b(0≤a<b0\le a<b)の小数展開は、筆算(割り算)の手順で作れます。r0=ar_0=a とし、k=1,2,…k=1,2,\dots について

dk=⌊10rk−1b⌋,rk=10rk−1−dkbd_k=\Bigl\lfloor\frac{10r_{k-1}}b\Bigr\rfloor,\qquad r_k=10r_{k-1}-d_kb

と定めます(rkr_k は筆算の「余り」で 0≤rk<b0\le r_k<b、dk∈{0,…,9}d_k\in\{0,\dots,9\})。

定理 5.1(有理数と循環小数)✓

  1. 有理数 a/ba/b(0≤a<b0\le a<b)について、上の手順で得られる d1,d2,…d_1,d_2,\dots は a/ba/b の小数展開であり、ある位置から先は繰り返す(有限小数は 00 の繰り返しとみなす)。
  2. 逆に、ある位置から先で同じ数字の並びを繰り返す小数展開 0.d1⋯dsc1⋯ct‾0.d_1\cdots d_s\overline{c_1\cdots c_t} の値は有理数である。
証明(定理 5.1)
  1. 帰納法で ab=∑k=1ndk10k+rnb 10n\dfrac ab=\sum_{k=1}^n\dfrac{d_k}{10^k}+\dfrac{r_n}{b\,10^n} が示される(n=0n=0 は自明、10rn−1=dnb+rn10r_{n-1}=d_nb+r_n より rn−1b10n−1=dn10n+rnb10n\dfrac{r_{n-1}}{b10^{n-1}}=\dfrac{d_n}{10^n}+\dfrac{r_n}{b10^n})。よって 0≤ab−sn=rnb10n<10−n0\le\dfrac ab-s_n=\dfrac{r_n}{b10^n}<10^{-n}。sn≤abs_n\le\dfrac ab なので上限は ab\dfrac ab 以下で、任意の y<aby<\dfrac ab に対し アルキメデスの原理(命題 5.4)[数とは何か] で 10−n≤1n<ab−y10^{-n}\le\frac1n<\dfrac ab-y となる nn をとれば sn>ys_n>y。したがって上限は ab\dfrac ab。余り r0,r1,…,rbr_0,r_1,\dots,r_b は {0,1,…,b−1}\{0,1,\dots,b-1\} の b+1b+1 個の値をとるので、鳩の巣原理(定理 7.5)[数え上げと母関数] によりある i<j≤bi<j\le b で ri=rjr_i=r_j。(dk+1,rk+1)(d_{k+1},r_{k+1}) は rkr_k だけで決まるので、k≥ik\ge i で rk+(j−i)=rkr_{k+(j-i)}=r_k、dk+1+(j−i)=dk+1d_{k+1+(j-i)}=d_{k+1} となり、数字は第 i+1i+1 位から先で周期 j−ij-i で繰り返す。
  2. A=0.d1⋯dsA=0.d_1\cdots d_s(有限小数、有理数)、C=c1⋯ctC=c_1\cdots c_t(tt 桁の整数)とする。繰り返し部分の値は ∑j≥1C 10−s10−tj=C 10−s(11−10−t−1)=C10s(10t−1)\sum_{j\ge1}C\,10^{-s}10^{-tj}=C\,10^{-s}\Bigl(\dfrac1{1-10^{-t}}-1\Bigr)=\dfrac{C}{10^s(10^t-1)}(等比級数、命題 6.2[数とは何か])。したがって値は A+C10s(10t−1)A+\dfrac C{10^s(10^t-1)} で、有理数。

定理 5.2(循環節の長さは 10 の位数)✓

既約分数 ab\dfrac ab(0<a<b0<a<b、gcd⁡(a,b)=1\gcd(a,b)=1)の分母を b=2α5βb′b=2^\alpha5^\beta b'(gcd⁡(b′,10)=1\gcd(b',10)=1)と書き、m=max⁡(α,β)m=\max(\alpha,\beta) とする。

  1. 小数展開が有限小数であるための必要十分条件は b′=1b'=1 である。
  2. b′>1b'>1 のとき、小数第 m+1m+1 位から先は純粋に循環し、その最小の周期(循環節の長さ)は法 b′b' における 1010 の位数 ord⁡b′(10)\operatorname{ord}_{b'}(10) である。

証明の方針は次のとおりです。分母の 22 と 55 の部分は、小数点を mm 桁ずらすと消えます。その後に残る分母 b′b' の部分では、筆算の余りが「1010 倍して b′b' で割った余りをとる」操作で更新されるので、kk 回後の余りは元の余りの 10k10^k 倍(法 b′b')になります。余りが最初に戻るのは 10k≡110^k\equiv1 となるときで、その最小の kk がちょうど位数です。

証明(定理 5.2)
  1. b′=1b'=1 なら 10mab=a⋅2m−α5m−β10^m\dfrac ab=a\cdot2^{m-\alpha}5^{m-\beta} は整数なので、展開は小数第 mm 位までで終わる(定理 5.1 の手順で、10mx10^mx が整数なら以後の余りは 00)。逆に有限小数 x=N/10nx=N/10^n なら、既約分数の分母 bb は 10n10^n を割り(a10n=Nba10^n=Nb で gcd⁡(a,b)=1\gcd(a,b)=1 より b∣10nb\mid10^n)、b′b' は 10n10^n の約数で gcd⁡(b′,10)=1\gcd(b',10)=1 なので b′=1b'=1。
  2. y=10mx=a′′b′y=10^mx=\dfrac{a''}{b'}、a′′=a⋅2m−α5m−βa''=a\cdot2^{m-\alpha}5^{m-\beta} は b′b' と互いに素(aa は bb と、2m−α5m−β2^{m-\alpha}5^{m-\beta} は b′b' と互いに素)。yy の整数部分を除いた小数部分を f=cb′f=\dfrac c{b'}(0<c<b′0<c<b'、gcd⁡(c,b′)=1\gcd(c,b')=1)とおく。一方、定理 5.1 の証明の式から 10mx=∑k≤mdk10m−k+rmb10^mx=\sum_{k\le m}d_k10^{m-k}+\dfrac{r_m}b(第 1 項は整数)なので、f=rm/bf=r_m/b。筆算の数字は dk=⌊10⋅rk−1/b⌋d_k=\lfloor10\cdot r_{k-1}/b\rfloor、rk/b=10⋅rk−1/b−dkr_k/b=10\cdot r_{k-1}/b-d_k と比 rk−1/br_{k-1}/b だけで決まるから、xx の小数第 m+1m+1 位以降の数字は、f=c/b′f=c/b' に筆算の手順を適用して得られる数字に一致する。ff に筆算の手順を適用すると r0=cr_0=c、rk≡10rk−1(modb′)r_k\equiv10r_{k-1}\pmod{b'} なので rk≡10kc(modb′)r_k\equiv10^kc\pmod{b'}。rk=r0r_k=r_0 となるのは 10kc≡c10^kc\equiv c、すなわち(gcd⁡(c,b′)=1\gcd(c,b')=1 なので 命題 3.6[合同式とフェルマーの小定理] で cc を消去して)10k≡1(modb′)10^k\equiv1\pmod{b'} のときで、これは 定理 3.2 から L=ord⁡b′(10)L=\operatorname{ord}_{b'}(10) が kk を割ることと同値。rL=r0r_L=r_0 だから、すべての k≥0k\ge0 で rk+L=rkr_{k+L}=r_k(rk+1r_{k+1} は rkr_k だけで決まる)、したがって数字は第 1 位から周期 LL で繰り返す。周期 ℓ\ell(dk+ℓ=dkd_{k+\ell}=d_k)で繰り返すなら、f=0.d1d2⋯f=0.d_1d_2\cdots について 10ℓf=D+f10^\ell f=D+f(D=d1⋯dℓD=d_1\cdots d_\ell を整数とみたもの)なので (10ℓ−1)c/b′=D(10^\ell-1)c/b'=D は整数。b′∣(10ℓ−1)cb'\mid(10^\ell-1)c、gcd⁡(c,b′)=1\gcd(c,b')=1 だから 補題 2.2[整除と素因数分解] により b′∣10ℓ−1b'\mid10^\ell-1、すなわち 10ℓ≡1(modb′)10^\ell\equiv1\pmod{b'} で L∣ℓL\mid\ell。ゆえに ℓ≥L\ell\ge L で、最小の周期は LL。

例 5.3(1/7、1/13、1/6 の小数展開)

10 mod 710\bmod7 の冪は 3,2,6,4,5,13,2,6,4,5,1 で ord⁡7(10)=6\operatorname{ord}_7(10)=6。17=0.142857‾\dfrac17=0.\overline{142857}(周期 66)。ord⁡13(10)=6\operatorname{ord}_{13}(10)=6(103=1000≡−1(mod13)10^3=1000\equiv-1\pmod{13} なので 106≡110^6\equiv1、103≢110^3\not\equiv1、位数は 66 の約数で 2,32,3 では 11 にならない)で、113=0.076923‾\dfrac1{13}=0.\overline{076923}。16\dfrac16 は b=2⋅3b=2\cdot3、α=1\alpha=1、b′=3b'=3、ord⁡3(10)=1\operatorname{ord}_3(10)=1 で、m=1m=1 なので小数第 22 位から先が循環します:0.16‾0.1\overline{6}。素数 pp について ord⁡p(10)\operatorname{ord}_p(10) が p−1p-1 に等しいとき、1/p1/p の循環節の長さは最大の p−1p-1 になります(p=7p=7 はその例)。

6. 原始ピタゴラス数と単位円の有理点

Section titled “6. 原始ピタゴラス数と単位円の有理点”

a2+b2=c2a^2+b^2=c^2 を満たす正の整数の組 (a,b,c)(a,b,c) をピタゴラス数、さらに gcd⁡(a,b)=1\gcd(a,b)=1 のものを原始ピタゴラス数といいます。

補題 6.1(互いに素な数の積が平方数なら、それぞれ平方数)✓

u,vu,v を互いに素な正の整数とし、uvuv が平方数ならば、uu も vv も平方数である。

証明(補題 6.1)

uv=w2uv=w^2 とする。素数 pp について vp(u)+vp(v)=vp(uv)=2vp(w)v_p(u)+v_p(v)=v_p(uv)=2v_p(w)(命題 5.3[整除と素因数分解] の 1.)は偶数。u,vu,v は互いに素なので、どの素数 pp も両方を割ることはなく、vp(u)v_p(u) と vp(v)v_p(v) の少なくとも一方は 00。したがって他方は偶数で、vp(u),vp(v)v_p(u),v_p(v) はともに偶数。u=∏pvp(u)u=\prod p^{v_p(u)}(定理 5.2[整除と素因数分解])なので u=(∏pvp(u)/2)2u=\bigl(\prod p^{v_p(u)/2}\bigr)^2、vv も同様。

定理 6.2(原始ピタゴラス数)✓

bb が偶数であるような原始ピタゴラス数 (a,b,c)(a,b,c) は、互いに素な正の整数 m>nm>n で m−nm-n が奇数であるものを用いて

(a,b,c)=(m2−n2, 2mn, m2+n2)(a,b,c)=(m^2-n^2,\ 2mn,\ m^2+n^2)

とただ 1 通りに表される。逆に、そのような m,nm,n から作った (a,b,c)(a,b,c) は原始ピタゴラス数である。

証明(定理 6.2)

(a,b,c)(a,b,c) を原始ピタゴラス数とする。a,ba,b がともに偶数なら gcd⁡(a,b)≥2\gcd(a,b)\ge2 に反する。ともに奇数なら a2+b2≡2(mod4)a^2+b^2\equiv2\pmod4 だが、平方数は  mod 4\bmod4 で 00 か 11 なので c2c^2 にならない。よって一方だけが偶数で、bb を偶数、aa を奇数とする(cc は奇数)。gcd⁡(a,c)=1\gcd(a,c)=1 である:素数 pp が a,ca,c を割れば p∣c2−a2=b2p\mid c^2-a^2=b^2 なので p∣bp\mid b、gcd⁡(a,b)=1\gcd(a,b)=1 に反する。 b2=c2−a2=(c−a)(c+a)b^2=c^2-a^2=(c-a)(c+a)。c,ac,a はともに奇数なので c−a=2uc-a=2u、c+a=2vc+a=2v(u,vu,v は正の整数、c>ac>a)と書ける。(b2)2=uv\bigl(\tfrac b2\bigr)^2=uv。u,vu,v は互いに素:d∣u,vd\mid u,v なら d∣v+u=cd\mid v+u=c、d∣v−u=ad\mid v-u=a で、gcd⁡(a,c)=1\gcd(a,c)=1 より d=1d=1。補題 6.1 から u=n2u=n^2、v=m2v=m^2(m,nm,n は正の整数)。c=v+u=m2+n2c=v+u=m^2+n^2、a=v−u=m2−n2a=v-u=m^2-n^2、(b2)2=m2n2\bigl(\tfrac b2\bigr)^2=m^2n^2 より b=2mnb=2mn。a>0a>0 から m>nm>n、gcd⁡(u,v)=1\gcd(u,v)=1 から gcd⁡(m,n)=1\gcd(m,n)=1、aa が奇数だから m,nm,n の偶奇は異なる(m−nm-n は奇数)。 逆に、m>n>0m>n>0、gcd⁡(m,n)=1\gcd(m,n)=1、m−nm-n 奇数のとき、(m2−n2)2+(2mn)2=(m2+n2)2(m^2-n^2)^2+(2mn)^2=(m^2+n^2)^2 が展開で確かめられる。a=m2−n2a=m^2-n^2 は奇数。素数 pp が aa と cc を割れば、pp は奇数で 2m2=a+c2m^2=a+c、2n2=c−a2n^2=c-a を割るので p∣mp\mid m、p∣np\mid n となり gcd⁡(m,n)=1\gcd(m,n)=1 に反する。よって gcd⁡(a,c)=1\gcd(a,c)=1 で、gcd⁡(a,b)=1\gcd(a,b)=1(p∣a,bp\mid a,b なら p∣c2=a2+b2p\mid c^2=a^2+b^2)。表し方が一意なのは、上の構成で m,nm,n が u,vu,v から決まるため。

(m,n)=(2,1),(3,2),(4,1),(4,3),(5,2)(m,n)=(2,1),(3,2),(4,1),(4,3),(5,2) から (3,4,5)(3,4,5)、(5,12,13)(5,12,13)、(15,8,17)(15,8,17)、(7,24,25)(7,24,25)、(21,20,29)(21,20,29) が得られます(偶数の方を bb に並べ替えれば上の形)。

系 6.3(単位円上の有理点)✓

単位円 x2+y2=1x^2+y^2=1 上の有理点(座標がともに有理数の点)のうち (−1,0)(-1,0) でないものは、有理数 tt を使って

(x,y)=(1−t21+t2, 2t1+t2)(x,y)=\Bigl(\frac{1-t^2}{1+t^2},\ \frac{2t}{1+t^2}\Bigr)

とただ 1 通りに表される。逆に、有理数 tt からこの式で得られる点は単位円上の有理点である。

証明(系 6.3)

P=(x,y)P=(x,y) を有理点で x≠−1x\ne-1 とすると、t=y1+xt=\dfrac y{1+x}((−1,0)(-1,0) と PP を結ぶ直線の傾き)は有理数。y=t(1+x)y=t(1+x) を x2+y2=1x^2+y^2=1 に代入すると x2−1+t2(1+x)2=0x^2-1+t^2(1+x)^2=0、すなわち (1+x)(x−1+t2(1+x))=0(1+x)\bigl(x-1+t^2(1+x)\bigr)=0。1+x≠01+x\ne0 なので x=1−t21+t2x=\dfrac{1-t^2}{1+t^2}、y=t(1+x)=2t1+t2y=t(1+x)=\dfrac{2t}{1+t^2}。tt は PP から t=y/(1+x)t=y/(1+x) と決まるので一意。逆に有理数 tt について (1−t2)2+(2t)2=(1+t2)2(1-t^2)^2+(2t)^2=(1+t^2)^2 が展開で確かめられ、点は単位円上にある。

t=n/mt=n/m とおくと、この式は原始ピタゴラス数の (m2−n2,2mn,m2+n2)/(m2+n2)(m^2-n^2,2mn,m^2+n^2)/(m^2+n^2) と一致します(定理 6.2 と同じ公式)。これは、円という曲線の有理点を、直線の傾きという 1 つの有理数で全部数え上げた最も簡単な例で、楕円曲線の有理点(楕円曲線とモジュラー形式)への入口になります。

(-1, 0)P = (3/5, 4/5)傾き t = 1/2
点 (-1, 0) から傾き 1/2 の直線を引くと、円との 2 つ目の交点は (3/5, 4/5)。傾きが有理数なら、交点も有理点になる。

d≥2d\ge2 を平方数でない整数とします。x2−dy2=1x^2-dy^2=1 の整数解を調べます。d>0\sqrt d>0 は存在します(f(x)=x2−df(x)=x^2-d は f(1)<0<f(d)f(1)<0<f(d) なので 中間値の定理(定理 5.7)[極限と連続性] による)。d\sqrt d は無理数(系 7.7[証明の技術])なので、整数 x,yx,y について x+yd=x′+y′dx+y\sqrt d=x'+y'\sqrt d なら x=x′x=x'、y=y′y=y'((y−y′)d=x′−x(y-y')\sqrt d=x'-x で y≠y′y\ne y' なら d\sqrt d が有理数になる)。

整数 x,yx,y に対し ξ=x+yd\xi=x+y\sqrt d、ξˉ=x−yd\bar\xi=x-y\sqrt d、N(ξ)=ξξˉ=x2−dy2N(\xi)=\xi\bar\xi=x^2-dy^2 とおきます。ξ′=x′+y′d\xi'=x'+y'\sqrt d との積 ξξ′=(xx′+dyy′)+(xy′+x′y)d\xi\xi'=(xx'+dyy')+(xy'+x'y)\sqrt d は同じ形で、ξξ′‾=ξˉξˉ′\overline{\xi\xi'}=\bar\xi\bar\xi' なので N(ξξ′)=N(ξ)N(ξ′)N(\xi\xi')=N(\xi)N(\xi') です。

まず、正の整数解が必ず存在することを示します。方針は次のとおりです。d\sqrt d をよく近似する分数 x/yx/y をたくさん作ると、x2−dy2x^2-dy^2 は 00 でない小さな整数になります。とる値は有限個しかないので、同じ値 kk をとり、しかも x,yx,y の kk で割った余りまで等しい 2 組が見つかります。その 2 組を「割り算」すると、x2−dy2=1x^2-dy^2=1 の解が出てきます。

証明の数え上げの理由を先に述べます。値 kk は 4d4d 通り、∣k∣|k| で割った余りの組は ∣k∣2≤4d2|k|^2\le4d^2 通りです。したがって 4d⋅4d2=16d34d\cdot4d^2=16d^3 を超える数の組を用意すれば、鳩の巣原理を 2 回使って、同じ値・同じ余りの 2 組が見つかります。また、ステップ 3 の X,YX,Y は、(x+yd)(x+y\sqrt d) と (x′−y′d)(x'-y'\sqrt d) の積 X+YdX+Y\sqrt d の係数で、積の NN は k⋅k=k2k\cdot k=k^2 になります。これを kk で割って N=1N=1 の解を得る、という見通しです。

補題 7.1(Dirichlet の近似定理)✓

α>0\alpha>0 を実数、QQ を正の整数とする。整数 pp と、1≤q≤Q1\le q\le Q を満たす整数 qq で

∣qα−p∣<1Q|q\alpha-p|<\frac1Q

となるものが存在する。

証明(補題 7.1)

(整数部分) 実数 t≥0t\ge0 に対し、tt 以下の最大の整数 ⌊t⌋\lfloor t\rfloor があることを確かめる。アルキメデスの原理(命題 5.4)[数とは何か] の (1) により n>tn>t となる自然数 nn がある。整数 mm で 0≤m≤t0\le m\le t を満たすものの集合は 00 を含み、その元はすべて nn より小さいので、0,1,…,n−10,1,\dots,n-1 のうちの空でない有限集合であり、最大元 ⌊t⌋\lfloor t\rfloor をもつ。最大性から ⌊t⌋+1>t\lfloor t\rfloor+1>t なので 0≤t−⌊t⌋<10\le t-\lfloor t\rfloor<1。 (鳩の巣) k=0,1,…,Qk=0,1,\dots,Q について fk=kα−⌊kα⌋f_k=k\alpha-\lfloor k\alpha\rfloor とおく(kα≥0k\alpha\ge0)。0≤fk<10\le f_k<1 なので 0≤Qfk<Q0\le Qf_k<Q で、jk=⌊Qfk⌋j_k=\lfloor Qf_k\rfloor は {0,1,…,Q−1}\{0,1,\dots,Q-1\} の元である。Q+1Q+1 個の kk を QQ 個の値 jkj_k に写す写像は、鳩の巣原理(定理 7.5)[数え上げと母関数] の 1.(定理中の整数を 11 とした場合)により単射でない。よって 0≤k<l≤Q0\le k<l\le Q で jk=jl=jj_k=j_l=j となるものがある。j≤Qfk<j+1j\le Qf_k<j+1、j≤Qfl<j+1j\le Qf_l<j+1 なので ∣Qfl−Qfk∣<1|Qf_l-Qf_k|<1、すなわち ∣fl−fk∣<1Q|f_l-f_k|<\dfrac1Q。 q=l−kq=l-k、p=⌊lα⌋−⌊kα⌋p=\lfloor l\alpha\rfloor-\lfloor k\alpha\rfloor とおくと、1≤q≤Q1\le q\le Q で qα−p=(lα−⌊lα⌋)−(kα−⌊kα⌋)=fl−fkq\alpha-p=(l\alpha-\lfloor l\alpha\rfloor)-(k\alpha-\lfloor k\alpha\rfloor)=f_l-f_k。ゆえに ∣qα−p∣<1Q|q\alpha-p|<\dfrac1Q。

補題 7.2(√d のよい近似分数はいくらでもある)✓

d≥2d\ge2 を平方数でない整数とする。どんな正の整数 MM に対しても、

∣x−yd∣<1y|x-y\sqrt d|<\frac1y

を満たす正の整数の組 (x,y)(x,y) で、互いに異なるものが MM 個以上ある。

証明(補題 7.2)

まず 2 つのことに注意する。(i) 正の整数 x,yx,y について x−yd≠0x-y\sqrt d\ne0。実際 x=ydx=y\sqrt d なら d=x/y\sqrt d=x/y が有理数になり、系 7.7[証明の技術] に反する。(ii) d>1\sqrt d>1。d≤1\sqrt d\le1 なら d=(d)2≤1d=(\sqrt d)^2\le1 となり d≥2d\ge2 に反する。 MM についての帰納法で示す。 (M=1M=1) 補題 7.1 を α=d\alpha=\sqrt d、Q=1Q=1 に使うと、q=1q=1 と整数 pp で ∣p−d∣<1|p-\sqrt d|<1 となるものがある。(ii) より p>d−1>0p>\sqrt d-1>0 なので pp は正の整数で、(x,y)=(p,1)(x,y)=(p,1) は ∣x−yd∣<1=1/y|x-y\sqrt d|<1=1/y を満たす。 (MM から M+1M+1 へ) 条件を満たす相異なる MM 個の組 (x1,y1),…,(xM,yM)(x_1,y_1),\dots,(x_M,y_M) があるとする。(i) より δ=min⁡i∣xi−yid∣>0\delta=\min_i|x_i-y_i\sqrt d|>0。アルキメデスの原理(命題 5.4)[数とは何か] の (2) で 1Q<δ\dfrac1Q<\delta となる正の整数 QQ をとり、補題 7.1 を α=d\alpha=\sqrt d とこの QQ に使って、1≤q≤Q1\le q\le Q と整数 pp で ∣qd−p∣<1Q|q\sqrt d-p|<\dfrac1Q となるものをとる。

  • q≤Qq\le Q なので ∣p−qd∣<1Q≤1q|p-q\sqrt d|<\dfrac1Q\le\dfrac1q。
  • p>qd−1≥d−1>0p>q\sqrt d-1\ge\sqrt d-1>0((ii))なので pp は正の整数。
  • ∣p−qd∣<1Q<δ≤∣xi−yid∣|p-q\sqrt d|<\dfrac1Q<\delta\le|x_i-y_i\sqrt d| なので、(p,q)(p,q) はどの (xi,yi)(x_i,y_i) とも異なる。

よって (p,q)(p,q) を加えた M+1M+1 個の相異なる組が条件を満たす。

定理 7.3(Pell 方程式の解の存在)✓

d≥2d\ge2 を平方数でない整数とする。x2−dy2=1x^2-dy^2=1 は正の整数解(x≥1x\ge1、y≥1y\ge1)をもつ。

証明(定理 7.3)

(ステップ 1:値の範囲) 補題 7.2 の条件 ∣x−yd∣<1/y|x-y\sqrt d|<1/y を満たす正の整数の組 (x,y)(x,y) について、k=x2−dy2k=x^2-dy^2 は 00 でなく(補題 7.2 の証明の (i) と同じく、k=0k=0 なら d=x/y\sqrt d=x/y が有理数になり 系 7.7[証明の技術] に反する)、

0<x+yd=(x−yd)+2yd<1y+2yd0<x+y\sqrt d=(x-y\sqrt d)+2y\sqrt d<\frac1y+2y\sqrt d

なので

∣k∣=∣x−yd∣ (x+yd)<1y(1y+2yd)=1y2+2d≤1+2d.|k|=|x-y\sqrt d|\,(x+y\sqrt d)<\frac1y\Bigl(\frac1y+2y\sqrt d\Bigr)=\frac1{y^2}+2\sqrt d\le1+2\sqrt d .

さらに d<d\sqrt d<d である(d≥d\sqrt d\ge d なら d=(d)2≥d2d=(\sqrt d)^2\ge d^2 となり、d≥2d\ge2 に反する)。よって ∣k∣<1+2d|k|<1+2d で、kk は整数だから 1≤∣k∣≤2d1\le|k|\le2d。すなわち kk は 4d4d 個の元からなる集合 K={−2d,…,−1,1,…,2d}K=\{-2d,\dots,-1,1,\dots,2d\} に属する。 (ステップ 2:同じ値・同じ余りの 2 組) 補題 7.2 で、条件を満たす相異なる組を 16d3+116d^3+1 個とり、その集合を AA とする。AA の各組に x2−dy2∈Kx^2-dy^2\in K を対応させる写像は ∣A∣>4d2⋅∣K∣|A|>4d^2\cdot|K| を満たすので、鳩の巣原理(定理 7.5)[数え上げと母関数] の 1.(定理中の整数を 4d24d^2 とした場合)により、ある k∈Kk\in K について x2−dy2=kx^2-dy^2=k となる組が 4d2+14d^2+1 個以上ある。∣k∣≤2d|k|\le2d なので、これは ∣k∣2+1|k|^2+1 個以上である。これらの組に、xx と yy をそれぞれ ∣k∣|k| で割った余りの組(∣k∣2|k|^2 通り)を対応させると、再び鳩の巣原理の 1.(定理中の整数を 11 とした場合)により、相異なる 2 組 (x,y)≠(x′,y′)(x,y)\ne(x',y') で

x2−dy2=x′2−dy′2=k,x≡x′,y≡y′(mod∣k∣)x^2-dy^2=x'^2-dy'^2=k,\qquad x\equiv x',\quad y\equiv y'\pmod{|k|}

となるものがある(∣k∣=1|k|=1 のときは合同の条件は自動的に成り立つ)。 (ステップ 3:割り算) X=xx′−dyy′X=xx'-dyy'、Y=x′y−xy′Y=x'y-xy' とおく。命題 3.3[合同式とフェルマーの小定理] により、x′≡xx'\equiv x、y′≡y(mod∣k∣)y'\equiv y\pmod{|k|} を代入して

X≡x2−dy2=k≡0,Y≡xy−xy=0(mod∣k∣).X\equiv x^2-dy^2=k\equiv0,\qquad Y\equiv xy-xy=0\pmod{|k|}.

よって X=kuX=ku、Y=kvY=kv となる整数 u,vu,v がある。一方、展開すると

X2−dY2=x2x′2−2dxx′yy′+d2y2y′2−d(x′2y2−2xx′yy′+x2y′2)=x2x′2−dx2y′2−dx′2y2+d2y2y′2=(x2−dy2)(x′2−dy′2)=k2\begin{aligned} X^2-dY^2&=x^2x'^2-2dxx'yy'+d^2y^2y'^2-d\bigl(x'^2y^2-2xx'yy'+x^2y'^2\bigr)\\ &=x^2x'^2-dx^2y'^2-dx'^2y^2+d^2y^2y'^2=(x^2-dy^2)(x'^2-dy'^2)=k^2 \end{aligned}

なので k2(u2−dv2)=k2k^2(u^2-dv^2)=k^2、k≠0k\ne0 で割って u2−dv2=1u^2-dv^2=1。 (ステップ 4:自明でないこと) v≠0v\ne0 を示す。v=0v=0 なら x′y=xy′x'y=xy' で、t=x′/xt=x'/x とおくと t>0t>0、x′=txx'=tx、y′=tyy'=ty。すると k=x′2−dy′2=t2(x2−dy2)=t2kk=x'^2-dy'^2=t^2(x^2-dy^2)=t^2k で、k≠0k\ne0 から t2=1t^2=1、t>0t>0 から t=1t=1。これは (x′,y′)=(x,y)(x',y')=(x,y) を意味し、2 組が相異なることに反する。ゆえに v≠0v\ne0 で、u2=1+dv2≥1+d>1u^2=1+dv^2\ge1+d>1 から u≠0u\ne0。(∣u∣,∣v∣)(|u|,|v|) は x2−dy2=1x^2-dy^2=1 の正の整数解である。

この証明は解の存在を示すだけで、最小解の大きさについては何も教えてくれません(実際、最小解は小さな dd でも非常に大きくなることがあります。直後の注意を見てください)。存在が分かれば、すべての正の解を記述できます。

定理 7.4(Pell 方程式の解の構造)✓

d≥2d\ge2 を平方数でない整数とする。x2−dy2=1x^2-dy^2=1 の正の整数解(x≥1x\ge1、y≥1y\ge1)のうち xx が最小のもの(定理 7.3 と整列性により存在する)を (x1,y1)(x_1,y_1) とし、ε=x1+y1d\varepsilon=x_1+y_1\sqrt d とおく。各 n≥1n\ge1 について εn=xn+ynd\varepsilon^n=x_n+y_n\sqrt d(xn,ynx_n,y_n は正の整数)とおくと、正の整数解は (xn,yn)(x_n,y_n)(n=1,2,…n=1,2,\dots)で尽くされ、互いに異なる。

証明(定理 7.4)

(最小解の存在) 定理 7.3 により正の整数解は少なくとも 1 つあるので、正の整数解の xx の値全体は正の整数の空でない部分集合であり、整列性により最小元 x1x_1 をもつ。y1=(x12−1)/dy_1=\sqrt{(x_1^2-1)/d} は x1x_1 から決まる。 ((xn,yn)(x_n,y_n) は解) εn\varepsilon^n は積の公式から xn+yndx_n+y_n\sqrt d(整数 xn,ynx_n,y_n)の形で、xn+1=xnx1+dyny1x_{n+1}=x_nx_1+dy_ny_1、yn+1=xny1+x1yny_{n+1}=x_ny_1+x_1y_n から帰納的に正の整数。N(εn)=N(ε)n=1N(\varepsilon^n)=N(\varepsilon)^n=1。ε>1\varepsilon>1 なので εn\varepsilon^n は真に増加し、異なる解を与える。 (尽くされる) (x,y)(x,y) を正の解、η=x+yd\eta=x+y\sqrt d とする。x≥x1x\ge x_1 で y=(x2−1)/d≥y1y=\sqrt{(x^2-1)/d}\ge y_1 だから η≥ε>1\eta\ge\varepsilon>1。εn→∞\varepsilon^n\to\infty(εn≥1+n(ε−1)\varepsilon^n\ge1+n(\varepsilon-1))なので、εn≤η<εn+1\varepsilon^n\le\eta<\varepsilon^{n+1} となる n≥1n\ge1 がある。ε−1=εˉ=x1−y1d\varepsilon^{-1}=\bar\varepsilon=x_1-y_1\sqrt d(N(ε)=1N(\varepsilon)=1)なので ζ=ηε−n=ηεˉn\zeta=\eta\varepsilon^{-n}=\eta\bar\varepsilon^n は x′+y′dx'+y'\sqrt d(整数 x′,y′x',y')の形で、N(ζ)=1N(\zeta)=1、1≤ζ<ε1\le\zeta<\varepsilon。ζ=1\zeta=1 なら η=εn\eta=\varepsilon^n で完了。ζ>1\zeta>1 とすると、ζˉ=ζ−1∈(ε−1,1)⊂(0,1)\bar\zeta=\zeta^{-1}\in(\varepsilon^{-1},1)\subset(0,1) なので x′=ζ+ζˉ2>0x'=\dfrac{\zeta+\bar\zeta}2>0、y′=ζ−ζˉ2d>0y'=\dfrac{\zeta-\bar\zeta}{2\sqrt d}>0 は正の整数で、(x′,y′)(x',y') は正の解である。正の解では x+yd=x+x2−1x+y\sqrt d=x+\sqrt{x^2-1} は xx について真に増加するので、x′+y′d=ζ<ε=x1+y1dx'+y'\sqrt d=\zeta<\varepsilon=x_1+y_1\sqrt d から x′<x1x'<x_1。これは x1x_1 の最小性に反する。ゆえに ζ=1\zeta=1。

注意 7.5

解の存在の証明(定理 7.3)は、Dirichlet の近似定理(補題 7.1)と鳩の巣原理による古典的な方法です。最小解を実際に求めるには、d\sqrt d の連分数展開が周期的になること(Lagrange)を使う方法が実用的で、最小解は連分数の近似分数の中に現れます(Niven–Zuckerman–Montgomery, An Introduction to the Theory of Numbers, 第 7 章)。最小解は小さな dd でも巨大になることがあり、d=61d=61 の最小解は (x1,y1)=(1766319049, 226153980)(x_1,y_1)=(1766319049,\,226153980) です。大学の代数的整数論では、Q(d)\mathbb{Q}(\sqrt d) の単数群が無限群であること(Dirichlet の単数定理、定理 6.1[イデアル類群の有限性と Minkowski 限界])の最も簡単な場合として、同じ存在定理が得られます。

例 7.6(d = 2 と d = 5)

d=2d=2: 32−2⋅22=13^2-2\cdot2^2=1。x≤2x\le2 では解がない(x=2x=2 なら y2=3/2y^2=3/2 で整数でない)ので最小解は (3,2)(3,2)。(3+22)2=17+122(3+2\sqrt2)^2=17+12\sqrt2 より (17,12)(17,12)、(3+22)3=99+702(3+2\sqrt2)^3=99+70\sqrt2 より (99,70)(99,70)。前の記事の近似分数 1,32,75,1712,4129,…1,\frac32,\frac75,\frac{17}{12},\frac{41}{29},\dots のうち p2−2q2=+1p^2-2q^2=+1 となるのは 32,1712,9970,…\frac32,\frac{17}{12},\frac{99}{70},\dots です。 d=5d=5: 最小解は (9,4)(9,4)(81−80=181-80=1)。(9+45)2=161+725(9+4\sqrt5)^2=161+72\sqrt5 で 1612−5⋅722=25921−25920=1161^2-5\cdot72^2=25921-25920=1。

例 8.1(何曜日になるか(万年暦))

20262026 年 1010 月 66 日は火曜日です。その 100100 日後は、100≡2(mod7)100\equiv2\pmod7 なので火曜の 22 日後、木曜日。1 年後の同じ月日の曜日は、間に 2 月 29 日を含まなければ 365≡1(mod7)365\equiv1\pmod7 より 11 日、含めば 366≡2366\equiv2 より 22 日進みます。グレゴリオ暦は 400400 年に閏年が 9797 回なので 400⋅365+97=146097=7⋅20871400\cdot365+97=146097=7\cdot20871 日で、曜日の並びは 400400 年ごとに完全に繰り返します。

例 8.2(RSA の小さな例)

p=5p=5、q=11q=11、n=55n=55、φ(n)=40\varphi(n)=40、e=3e=3、d=27d=27(3⋅27=81≡1(mod40)3\cdot27=81\equiv1\pmod{40})。メッセージ m=8m=8 の暗号文は 83=512≡17(mod55)8^3=512\equiv17\pmod{55}。復号は 1727 mod 5517^{27}\bmod55 で、中国剰余定理(定理 4.8[合同式とフェルマーの小定理])により法 55 と法 1111 に分けて計算します。17≡2(mod5)17\equiv2\pmod5、Fermat の小定理で 24≡12^4\equiv1 なので 227=224⋅23≡8≡32^{27}=2^{24}\cdot2^3\equiv8\equiv3。17≡6(mod11)17\equiv6\pmod{11}、610≡16^{10}\equiv1 より 627≡676^{27}\equiv6^7、62≡36^2\equiv3、64≡96^4\equiv9、66≡27≡56^6\equiv27\equiv5、67≡30≡86^7\equiv30\equiv8。x≡3(mod5)x\equiv3\pmod5、x≡8(mod11)x\equiv8\pmod{11} の解は x=8x=8(8 mod 5=38\bmod5=3)で、元のメッセージに戻りました。一般にこれが戻る理由が RSA の正当性(定理 6.1)[合同式とフェルマーの小定理] です。

例 8.3(合同数)

辺の長さが有理数の直角三角形の面積になる正の整数を合同数といいます。66 は (3,4,5)(3,4,5) の面積 12⋅3⋅4=6\frac12\cdot3\cdot4=6 なので合同数です。55 も合同数で、辺が 32,203,416\frac32,\frac{20}3,\frac{41}6 の直角三角形(94+4009=168136\frac94+\frac{400}9=\frac{1681}{36}、416\frac{41}6 の平方)の面積は 12⋅32⋅203=5\frac12\cdot\frac32\cdot\frac{20}3=5。どの整数が合同数かの判定は、楕円曲線の有理点の問題(Tunnell の定理)として大学で扱われます。

  • 剰余環 Z/mZ\mathbb{Z}/m\mathbb{Z} とその単元群、位数と Lagrange の定理は 群と部分群、合同式と RSA・中国剰余定理は 合同式と Fermat の小定理 の主題です。原始根・平方剰余・相互法則へ進みます。
  • 単位円の有理点のパラメータ表示は、楕円曲線の有理点(Mordell–Weil の定理)へ(楕円曲線とモジュラー形式)。
  • Pell 方程式の解の構造は、2 次体の単数群(Dirichlet の単数定理)の最も簡単な場合です。

演習 10.1易

ord⁡13(2)\operatorname{ord}_{13}(2) を求めよ。また 22026 mod 132^{2026}\bmod13 を求めよ。

解答

21,22,…2^1,2^2,\dots を法 1313 で計算すると 2,4,8,3,6,12,11,9,5,10,7,12,4,8,3,6,12,11,9,5,10,7,1 で、212≡12^{12}\equiv1 が初めてなので位数は 1212(定理 3.2 から 1212 の約数 1,2,3,4,61,2,3,4,6 では 11 にならないことだけ確かめればよい)。2026=12⋅168+102026=12\cdot168+10 なので 22026≡210≡102^{2026}\equiv2^{10}\equiv10(命題 3.3)。

演習 10.2標準

117\dfrac1{17} の循環節の長さを求めよ。

解答

b=17b=17 は素数で b′=17b'=17。ord⁡17(10)\operatorname{ord}_{17}(10) は 1616 の約数。102=100≡15≡−210^2=100\equiv15\equiv-2、104≡410^4\equiv4、108≡16≡−1(mod17)10^8\equiv16\equiv-1\pmod{17}。108≢110^8\not\equiv1 なので位数は 88 の約数ではなく、1616 の約数で 1616 の約数のうち 88 を割らないものは 1616 だけ。よって位数は 1616、循環節の長さは 1616(定理 5.2)。

演習 10.3標準

(n−1)!≡−1(modn)(n-1)!\equiv-1\pmod n となる n≤12n\le12 をすべて求めよ。

解答

定理 4.1 より nn が素数のときに限るので、n=2,3,5,7,11n=2,3,5,7,11。

演習 10.4難

(1) c≤40c\le40 の原始ピタゴラス数をすべて挙げよ。(2) x2−3y2=1x^2-3y^2=1 の最小解と、次の解を求めよ。

解答

(1) 定理 6.2 で c=m2+n2≤40c=m^2+n^2\le40、m>nm>n、互いに素、m−nm-n 奇数。(m,n)=(2,1),(3,2),(4,1),(4,3),(5,2),(6,1)(m,n)=(2,1),(3,2),(4,1),(4,3),(5,2),(6,1) が条件を満たす((5,4)(5,4) は c=41>40c=41>40 で除外、(6,5)(6,5) は c=61c=61)。順に (3,4,5)(3,4,5)、(5,12,13)(5,12,13)、(15,8,17)(15,8,17)、(7,24,25)(7,24,25)、(21,20,29)(21,20,29)、(35,12,37)(35,12,37)。直角をはさむ 2 辺の順序を無視すれば (3,4,5)(3,4,5)、(5,12,13)(5,12,13)、(8,15,17)(8,15,17)、(7,24,25)(7,24,25)、(20,21,29)(20,21,29)、(12,35,37)(12,35,37) の 6 組。(2) x=2x=2 で y=1y=1(4−3=14-3=1)。最小解は (2,1)(2,1)(x=1x=1 では y=0y=0 となり正の解でない)。定理 7.4 より正の解は (2+3)n(2+\sqrt3)^n で尽くされ、xx の小さい順に並ぶので、次の解は (2+3)2=7+43(2+\sqrt3)^2=7+4\sqrt3 より (7,4)(7,4)(49−48=149-48=1)。

  1. Ivan Niven, Herbert S. Zuckerman, Hugh L. Montgomery, An Introduction to the Theory of Numbers, 5th ed., Wiley, 1991 — 第 2 章(合同式)、第 7 章(連分数と Pell 方程式)。
  2. G. H. Hardy, E. M. Wright, An Introduction to the Theory of Numbers, 6th ed., Oxford University Press, 2008 — 第 6 章・第 9 章(Fermat の定理と小数)。
  3. Kenneth Ireland, Michael Rosen, A Classical Introduction to Modern Number Theory, 2nd ed., Springer, 1990 — 第 1 章・第 2 章(整除と合同)。
  4. 高木貞治『初等整数論講義』第 2 版、共立出版、1971。

このテーマの 100 本ノック(100 問)

執筆: Claude Code(Sonnet 5.5)、Claude Code(Opus 5.5)・監査 3 回(Claude Code)・最終 2026-10-12

この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・コード例は MIT ライセンスです。