ご注文は数オリですか?

トピック一覧へ戻る

mod p 完全攻略 ― 位数を中心に
更新日:2023-08-09

この記事の目的は,位数に関する議論を原始根を中心に整理し, 様々なタイプの数学オリンピックの整数問題に対して応用することである.

理論

まずフェルマーの小定理を示し,オイラーの定理,カーマイケルの定理へと拡張する. 次に,原始根を導入して基本的な取り扱いを述べ,いくつかの応用を見る. LTEの補題やジグモンディーの定理についても触れる.

本章を通して特に断りのない限り p は素数を表す.

1. 多項式

定理 1(剰余の定理). 整数係数多項式 f,g は,最高次係数が p で割り切れないとする. このとき,以下をみたす整数係数多項式 q,r が,係数をmodp で考えて一意に存在する: fgq+r(modp),degr<degg

証明は通常の剰余の定理と同様に進行する.

証明. まず,存在するとして一意であることを示す.二つあったとする.すなわち, fgq1+r1gq2+r2(modp) とすると,r1r2g(q2q1)(modp) となる. いま,q1q2(modp) とすると deg(r1r2)degg となり矛盾するから, q1q2(modp).このとき r1r2(modp) も従う.

 存在することを示す. g が定数の時は明らかなので,degg1 とする. degf に関する帰納法で示す. degf<degg のときは q=0,r=f とすればよい. kdeg(g(x))1 について,degfk において示されたとする. degf=k+1 として,f,g の最高次係数を a,b とすると,bc1(modp) なる整数 c が存在する. f1(x)f(x)acg(x)xk+1degg(modp) とすると,degf1k とできるので, 帰納法の仮定により f1gq1+r(modp) かつ degr<degg なる整数係数多項式 q1,r が存在する. f(x)f1(x)+acg(x)xk+1deggg(x)(acxk+1degg(x)+q1(x))+r(x)(modp) により degf=k+1 でも主張は正しく,定理は示された.

整数 a に対して,g(x) として xa をとると,以下の系が得られる:

定理 2. f(a)0(modp) であるとき,f(x)(xa)q(x)(modp) なる整数係数多項式 q が存在する.

さらに,この系を繰り返し用いれば次の系が得られる:

定理 3(因数定理). f を整数係数多項式とし,整数 a1,,anmodp で相異なるとする. f(a1)f(an)0(modp) であるとき,ある整数係数多項式 g(x) が存在して, f(x)g(x)(xa1)(xan)(modp) が成り立つ.

上の系から次の定理が導かれる:

定理 4. n を非負整数とし,f(x)modp で恒等的に 0 でない整数係数 n 次多項式とすると, f(x)0(modp)modp における解は高々 n 個である.

この記事では,特に f(x)=xn1 としてこの定理を使うことがしばしばある.

2. フェルマーの小定理

ここではフェルマーの小定理とその証明,および簡単な応用について触れる. フェルマーの小定理は重要であるから,複数の証明を載せて多くの視点から理解していく.

定理 5(フェルマーの小定理). p を素数とする.整数 ap で割り切れないとき,ap11(modp)
証明 1. まず,二項展開することで (a+b)pap+bp(modp) の成立がわかる. 特に (a+1)pap+1(modp) なので,0p0(modp) とあわせて apa(modp) が得られる. ap と互いに素であるから示された.

この証明からわかるように,次の系が得られる:

系 6. p を素数とする.任意の整数 a に対して,apa(modp)

この系では a に条件がつかないため,状況しだいではもとのフェルマーの小定理より適することもある.

証明2の前に,一つの補題を述べる:

補題 7. n を正整数とし,X を「1 以上 n 以下で n と互いに素な整数」全体からなる集合とする. 整数 an と互いに素であるとき, 写像 f:XXf(x)ax(modn) によって定めると,f は全単射である.
補題の証明. f が単射であることを示せば十分である. f(x)=f(y) とすると axay(modn) となり,an が互いに素であることから xy(modn), すなわち x=y が従う.
証明 2. n=p として補題を適用することで, (p1)!i=1p1ij=1p1(aj)ap1(p1)!(modp). (p1)!p は互いに素であるから,ap11(modp)

証明3は少し入り組む.単にフェルマーの小定理を示すだけであれば上の二つのような方法をとれば十分だが, 以降の議論のために紹介する.そのためには,しばらくの準備が必要である.

補題 8. 整数 ap と互いに素であるとき,ある正整数 n が存在して an1(modp) となる.
補題の証明. 典型的な鳩の巣原理の適用例である. 鳩の巣原理により,a0,,ap の中には p で割った余りが等しい 2ai,aj (i<j) がある. このとき,aji1(modp) となる.

この補題によって,次の定義が導入できる:

定義 1(位数). p を素数とし,ap と互いに素な整数とする. このとき,am1(modp) なる最小の正整数 mamodp での位数とよぶ. この記事では位数を ordn(a) で表すこととする.

位数の基本性質の一つとして,an の位数は a の位数の約数である(証明を試みよ).

証明 3. 明らかに,位数はつねに p1 以下である. 位数としてありうる最大値を m とし,a の位数が m であるとする. いま,m=p1 であることを示したい.そのために,m<p1 であると仮定して矛盾を導く.

 このとき,位数が m の約数でない整数 b が存在する. なぜならば,位数が m の約数である整数 ccm10(modp) をみたし, 定理4によりこれをみたす cmodp で高々 m (<p1) 個であるからである. このような b のうち位数が最小であるものを d とし,その位数を n とすると, (n の最小性により)任意の n の真の約数は m の約数でもある. これにより,n の素因数 p を一つとると,nmp の約数となる. ここで np 以外の素因数 q をもつとすると,nmq の約数でもあり, これは nm を導くから矛盾.すなわち,n=pe と表せる.

 このとき,ad の位数が mp であることを示せば十分である(m の最大性に矛盾する). (ad)mp1(modp) により kmp であるが, (ad)mdm1(modp) により km である. したがって,pe=nk が必要である. dpe1(modp) により 1(ad)kakdkak(modp) となるから,mk. よって,kmn の公倍数であるから,k=mp となる.

 さて,以上で a の位数が p1 であることが示された. このとき,p1 個の整数 a0,a1,a2,,ap2modp で相異なるから, 任意の p と互いに素な整数 b に対して bai(modp) なる整数 i が存在することになる. すると,bp1(ai)p1(ap1)i1(modp) となり,証明が完了する.

ここまでの議論によって,一つの重要な帰結が得られる. 原始根は,この記事の一つの重要なテーマである.

定理 9(原始根の存在). 素数 p に対して,modp には原始根が存在する. すなわち,ある整数 a が存在して, 任意の p で割り切れない整数 b に対して,ある非負整数 n が存在して anb(modp) となる.

最後の証明はちょっとしたオマケである.

証明 4. a>0 のとき示せばよい. 円周上に等間隔に並んだ p 個の点に,1 以上 a 以下の整数を割り当てる方法の個数を考える. ここで,回転して一致するものを区別しないことにすると, すべての点に同じ数を割り当てるか否かで場合分けすればよく,求める場合の数は apap+a である. よって,特に apa(modp) である.

なお,証明1・証明2の理解の助けとして,以下の系を述べておく.これは系3と系6から導かれる.

系 10. x についての多項式として,次が成り立つ: x(x1)(x2)(x(p1))xpx(modp)

さて,フェルマーの小定理の自明な応用例をいくつか見ておく. まず,以下は具体的な数をあてはめたのみにすぎないが, たとえば「4 乗数を見たらmod5 を考えるとよいかもしれない」といった逆向きの目線は侮れない.

系 11. 整数 a に対して,以下が成り立つ:

また,一般に a3a(mod3)a5a(mod5)a7a(mod7) が成り立つ.

次も自明な言いかえにすぎないが,いわゆるモジュラ逆数を計算する具体的な方法を与えている点で重要である:

系 12. 整数 ap と互いに素であるとき,ap2a1(modp). すなわち,a1ap2(modp)

最後に,非常に簡単な例題を一つ.

#1
★☆☆☆☆
有名問題

p7 以上の素数とする,十進法で 1p1 個連続した数 11111 は,p の倍数であることを示せ.

p10 および 9 と互いに素であるから, 11111=k=0p210k=10p111010(modp).

3. カーマイケルの定理

素数に限らず,一般の正整数 n を法としたフェルマーの小定理の拡張を考えたい. すなわち目標は,任意の n と互いに素な整数 a に対して am1(modn) が成立するような, 正の整数 m を見つけることである. 中国剰余定理をふまえて,まずは n=pk と表せる場合に絞って考える.

補題 13. k を正整数として,p を素数,ap と互いに素な整数とすると, a(p1)pk11(modpk),a2k1(mod2k+2).
証明. 一つ目の式を示す.S を「pk 以下の p と互いに素な正整数」全体からなる集合とすると,補題7により iSiiS(ai)aφ(pk)iSi(modpk) が成り立つ.φ(pk)=pk1(p1) により示された.二つ目の式を示すためには,以下に留意する: a2k1=(a21)(a2+1)(a2k1+1)=(a21)i=1k1(a2i+1). a2i+1 は偶数であり,a218 の倍数である.よって,左辺は 23+(k1)=k+2 回以上割り切れる.

補題により,次のように関数 λ(n) を定めれば,aλ(n)1(modn) が従う:

定義 2(カーマイケル関数). 以下で定義される λ:Z>0Z>0 を,カーマイケル関数とよぶ: λ(1)=λ(2)=1,λ(4)=2,λ(2k+2)=2k,λ(pk)=(p1)pk1,λ(n)=lcm(λ(p1e1),λ(p2e2),...,λ(pNeN)) ただし,上では p は奇素数とし,n=piei と素因数分解されているとする.
定理 14(カーマイケルの定理). n を正整数とする.整数 an と互いに素であるとき,aλ(n)1(modn)

λ(n)φ(n) であるから,次の定理も成立する:

定理 15(オイラーの定理). n を正整数とする.整数 an と互いに素であるとき,aφ(n)1(modn)

なお,オイラーの定理を示すだけであれば,補題13と同様に補題7を用いるだけである.各自で試みよ.

カーマイケル関数 λ(n) は,実は an と互いに素なときつねに am1(modn) となる最小の m を与えているので, その意味でカーマイケルの定理は最良の結果である.すなわち,オイラーの定理は必ずしも最良の結果を与えないが, オイラーの定理の方が使い勝手はよいので,ケースバイケースであることに留意しよう.

具体的計算への応用として,131341 の下二桁を求めてみよう.これは 100 で割った余りを求めるということである. φ(100)=40 なのでオイラーの定理により 131341(1340)3313211321(mod100) となるが, まだ計算が大変である.いま λ(100)=20 であるから, カーマイケルの定理を使えれば 13134113113(mod100) となり,下二桁が求められた.

4. 原始根

以下の定理はすでに示したが,別証を与える(少し難しいので,飛ばしてよい).

定理 9(原始根の存在). 素数 p に対して,modp には原始根が存在する. すなわち,ある整数 a が存在して, 任意の p で割り切れない整数 b に対して,ある非負整数 n が存在して anb(modp) となる.
証明. まず,一般に an1(modp)ordp(a)n が成立することに注意する. 特に,フェルマーの小定理により ordp(a)p1 が成立する.

 いま,dp1 であるとき,xd10(modp) の解の個数は定理4により d 個以下である. ここで,解の個数が d 個未満であったとすると, p1d 次多項式 xp11xd1p1d 個より多くの根をもつことになり,定理4に反する. よって,xd10(modp) の解の個数はちょうど d 個である.

 これにより,位数が d であるものがmodpf(d) 個存在するとすると,idf(i)=d が成立するから, メビウスの反転公式により f(d)=idμ(di)i=pd(pvp(d)pvp(d)1)=φ(d). したがって,f(p1)=φ(p1)>0 により定理は示された.

さて,ここからは原始根を次々に応用していく.

rmodp の原始根として固定する. p と互いに素な整数 a に対して,ark(modp) なる k がとれる. このとき,amodp に対してkmodp1 を対応させる写像 ψ を定義できる. これは全単射であり,ψ(1)=0ψ(abmodp)=ψ(a)+ψ(b)(modp1)ψ(a1)=ψ(a) などの性質をもつ. すなわち,p と互いに素な整数全体での掛け算をmodp で考えることと,modp1 で足し算を考えることは, 本質的に等価である(群として同型である). 上の証明で,dp1 のとき xd10(modp) の解がちょうど d 個であることを用いたが, これも ψ を考えることで明快になるだろう.

平方剰余との関係を少しだけ見る.ここでは p は奇素数であるとし, χ2(p,a) を平方剰余記号とする.

定理 16(オイラーの基準). ap12χ2(p,a)(modp)
証明. (1)21,11(modp) により 2ψ(1)0,ψ(1)0(modp1) であるから, ψ(1)p12(modp1) である. いま,amodp で平方剰余であることは,ψ(a)2ψ(t)(modp1) なる t があると言いかえられる. これは ψ(a) が偶数であることと同値であり,このとき ψ(χ2(p,a))0ap12(modp1) であるからよい.a が平方剰余でない場合も同様.
系 17. 以下が成立する.特に,χ2(p,1)=1p1(mod4)χ2(p,ab)=χ2(p,a)χ2(p,b),χ2(p,1)=(1)p12

平方剰余についてはあまり深堀りしない.最後に,位数の関連する議論で特に頻出の状況を確認しておく.

定理 18. aman1(modp) であるとき,a(m,n)1(modp).
証明. ψ(a)x(modp1) とすれば, 示すべきことは mxnx0(modp1)(m,n)x0(modp1) であるが,これは素因数分解の一意性から明らかである.

 なお,ψ を使わずに次のように書くこともできる: ベズーの補題により,sm+tn=(m,n) なる s,t がとれるから,a(m,n)asm+tn1(modp)

フェルマーの小定理とあわせることで次の系が得られる(今回はこれを最もよく用いる). 特に後半の表現は,b が素数であるなど約数が少ないときに威力を発揮する.

系 19. ab1(modp)a(b,p1)1(modp). 特に,bp1 と互いに素であるとき,ab1(modp)a1(modp)

ψ を用いない証明を観察すると,一般の法に対して拡張可能であることがわかる.

定理 20. xaxb1(modm) であるとき,x(a,b)1(modm).
系 21. ab1(modn)a(b,φ(n))1(modp)

以下はちょっとした変種である.xaxb1(modm) のときに類似の結果が得られるか,検討してみよ.

定理 22. xa1, xb1(modm) であるとき, x(a,b)=1(modm)

さらに v2(b)v2(a) であるならば,m=1,2

証明. m=1,2 のときは自明であるから,m3 で考える. xa1(modm) により x2a1(modm) であるから,定理20により x(2a,b)1(modm) である. (2a,b)a とすると,1xa1(modm) となり m3 に矛盾する. よって v2(b)>v2(a) が成り立ち,後半の主張がまず得られる.

 さて,ベズーの補題によって sa+tb=(a,b) なる s,t をとると, x(a,b)xsa+tb(1)s(modm) となる. ここで x(a,b)1(modm) とすると,m3xa1(modm) に矛盾する.

これらの定理をふまえると,素数以外の法でも原始根に類するものが存在すると都合がよい.次節で論じていこう.

5. LTEの補題

もしmodm に原始根 r があるならば,ordm(r)=φ(m) でなければならない. しかし,カーマイケルの定理により ordm(r)λ(m) が成立するので,λ(m)=φ(m) となる. これが成り立つのは,p を奇素数として m=1,2,4,pk,2pk のときのみである. したがって,一般の法でこそ原始根は存在しないものの,実はこれらの m では原始根が存在するのである. 中国剰余定理をふまれば,素べきの場合にそうした議論ができれば十分であろう.

さて,modpk で考えるうえで付値の概念は重要である.しばらくその準備をする.

定義 3(p 進付値). n0 でない整数とし,p を素数とする,np で割り切れる回数を vp(n) で表す. これを p 進付値とよぶ.p 進付値は有理数全体に対してまで定義でき,以下の諸性質も拡張できるが,ここではそこまで扱わない.

次の補題の証明は容易であり,読者に委ねる:

補題 23. vp(nm)=vp(n)+vp(m)vp(n+m)min(vp(n),vp(m))

次の補題が核心である.

定理 24(LTEの補題). p を素数,a,bp で割り切れない整数とし, pab が成立するとする(ただし p=2 のときは仮定を 4ab に強める). このとき,任意の非負整数 n についてvp(anbn)=vp(ab)+vp(n)
証明. ab=kpe とおく(ここで kp で割り切れない).このとき, vp(anbn)=vp(an(akpe)n)=vp(nkpean1nC2k2p2ean2+(kpe)n)=vp(kpe)+vp(nan1nC2kpean2++(kpe)n1)=e+vp(nan1nC2kpean2++(kpe)n1) となる.したがって, vp(n)=vp(nan1nC2kpean2++(kpe)n1) を示せばよいが, そのためには 2 以上 n 以下の整数 l に対して vp(nCl(kpe)l1anl)>vp(n) を示せばよく, さらに k,ap と互いに素であるから vp(nClpe(l1))>vp(n) を示せば十分である.

 整数の範囲で議論するために,少し特殊な変形を行う: vp(nClpe(l1))+vp(l)=vp(lnClpe(l1))=vp(n(n1l1)pe(l1))vp(pe(l1))+vp(n)=e(l1)+vp(n). これを移項することで,e(l1)>vp(l) を示せばよい. y=vp(l),l=xpy とおくと,l2 により e(l1)>xpy1p1py1p1=py1++p+1y となる.以上により vp(nCl(kpe)l1)>vp(n) が得られたから, vp(anbn)=e+vp(nan1nC2kpean2++(kpe)n1)=vp(ab)+vp(n).

LTEの補題を用いることで,次の結果が得られる:

定理 25. p を奇素数,k を正整数とすると,modpk には原始根が存在する.
証明. amodp における原始根とする. ap11(modp2) であるときは b=a とし, ap11(modp2) であるときは b=a+p とすれば, bmodp における原始根であり,かつ bp11(modp2) をみたす. なぜならば,ap11(modp2) のとき bp1(a+p)p1ap1+(p1)pa1ap1(modp2) であるからである.

以下,bmodpk で原始根であることを示す. そのためには,bn10(modpk),すなわち vp(bn1)k なる最小の正整数 n(p1)pk1 であることを示せばよい.まず bn1(modp) であり,bmodp における原始根であることから,np1 の倍数である. n=(p1)m とおくと,LTEの補題により kvp(bn1)=vp((bp1)m1)=vp(bp11)+vp(m)=1+vp(m) となるから,mpk1 の倍数となる.よって,n(p1)pk1 の倍数であり,定理は示された.

系 26. p を奇素数,k を正整数とすると,mod2pk には原始根が存在する.
証明. amodpk の原始根とするとき,aa+pk のうち奇数である方がmod2pk での原始根となる.

以上によって,m を法として原始根が存在するのは,ちょうど m=1,2,4,pk,2pkp は奇素数)のときであることが示された.

では,k3mod2k のときはどうなっているだろうか?  このときの問題は,LTEの補題が v2(ab)=1 の場合に成立しないことである. 逆に v2(ab)2 のときは成立するので,類似の結果が成立することが予想できる.

定理 27. k3 に対し,mod2k では以下の条件をみたす「準原始根」a が存在する:
証明. 実は,a3,5(mod8) のときつねに条件をみたすことを示す(さらに逆も成り立つ.これは演習とする).

 まず,位数が 2k2 であることを示す. an1(mod2k) とすると,an1(mod4) により n は偶数である. n=2m とおき,さらに a=8x+y と表すと(ここで y3 または 5), a2=64x2+16xy+y29(mod16) となるから,v2(a21)=3. したがって,LTEの補題により kv2(an1)=v2((a2)m1)=v2(a21)+v2(m)=3+v2(n)1=v2(n)+2 であるから,n2k2 の倍数である.これは a の位数が 2k2 であることを意味する.

 さて,atmod2kmod81 または a と合同である. 一方で,mod81 または a と合同なものはmod2k で考えれば 2k2 個であるから, 結局 atmod2k はそのようなもの全体を動く. 任意の奇数 x に対して,xx の一方は 1 または a と合同であるから,後半の条件も成り立つ.

これによって,定理20・定理22が原始根を用いて示せるようになる. また,上で「カーマイケルの定理がある意味で最良の結果である」と述べたことが裏付けられる.これらを納得せよ.

6. ジグモンディーの定理

少し脇道に逸れるが,参考のために主張と証明を紹介しておく.

定義 4(原始的素因数). {an} を整数列とし,m を正整数とする. am の素因数 p について,任意の m 未満の正整数 k に対して akp で割り切れないとき, pam原始的素因数とよぶ.
定理 28(ジグモンディーの定理). x,y0 でない互いに素な整数とし, |x||y| をみたすとする. an=xnyn とすれば,以下の場合を除いて an は原始的素因数をもつ:
証明. 工事中

問題への応用

ここまで, 位数の議論に関係する理論を解説してきた. ここからはそれらの定理などをどのように応用していくかを考えていく. まずは簡単な応用, 次にそれを利用した飛び道具的な使い方を見ていく. 最後に演習問題をおいておく.

1. 求値問題への応用

#2
★☆☆☆☆

201000013 で割った余りを求めよ.

何通りか解法を紹介する:

  • 2010000710000710000mod127424019(mod13)
  • 20100004010000210000210000210000mod12282569(mod13)
  • 201000022000051000028542562529(1)29(mod13)

このように,指数に対して余りを求めるときは,愚直な計算のほかにフェルマーの小定理やカーマイケルの定理(オイラーの定理)が使えるのはもちろんだが,他にも計算すべき値を小さくするために素因数分解するなど,様々な小技を使うことができる. 以下に示すのもその一つである.

#3
★★☆☆☆
JMO 2007 予選 問2

111213 の十の位を求めよ.

十の位のかわりに下二桁を求める.すなわち,111213100 で割った余りを求める.

λ(100)=lcm(2,20)=20λ(20)=lcm(2,4)=4 により, 111213111213mod20111213mod41112(mod100) までは計算できるが,ここから工夫が必要である.以下には二つの選択肢を示す:

  • 11111, 11221, 11331,,(mod100) であるから,11a10a+1(mod100) であると予想でき,これは帰納法によって証明できる.よって,111212121(mod100)
  • 二項定理により,1112(10+1)12+12C2102+1210+121(mod100)

ここからは,一歩進んで総和や総積を絡めていく.

#4
★☆☆☆☆

12+22++100217 で割った余りを求めよ.

二乗の総和の公式を用いればよいが,少しだけ工夫する. 12+22++1002(12+22++1012)10126(12+22++162)(1)2(mod17) とすれば,12+22++16216173360(mod17) であるから,求める余りは 16

なお,これはmod17 の原始根 g をとることで次のようにも理解できる: 12+22++162g0+g2++g30g321g210(mod17)

上の解答で述べた原始根による理解は,指数が大きくなるとその真価を発揮する.

#5
★★☆☆☆

p を素数,a を整数とするとき,1a+2a++(p1)a0(modp) と同値な p,a に関する条件を求めよ.

gmodp における原始根とする,ga1(modp) のとき, k=1p1kak=0p2gakga(p1)1ga10(modp). ただし,最後にフェルマーの小定理を用いた.一方で ga1(modp) のとき, k=1p1ka1(p1)10(modp). よって求める条件は ga1(modp) が,これは p1a と言いかえられる.

なお,原始根を使わなくても解くことはできる.各自で試みよ.

ただし,原始根だけに拘泥してはならない.その前にできることがないか考えよう.

#6
★★★☆☆
ウォルステンホルムの定理

素数 p5 に対して,n=1p11n0(modp2) が成り立つことを示せ.

n=1p11n12n=1p1(1n+1pn)p2n=1p1(1n(pn))p2n=1p11n20(modp2)

ただし,最後の等号は例題5から得られる. なお,最初の式変形をせずに原始根を持ち出してもmodp の範疇から出られないため,最初の式変形は本質的である.

#7
★★★☆☆

a1 ではない奇数とする.n=1p1na0(modp2) となる素数 p の条件を求めよ.

積の場合にも似たようなことができる.

#8
★★☆☆☆
ウィルソンの定理

素数 p に対して,(p1)!1(modp) を示せ.

p=2 のときは明らかであるから,p3 とする.

解法1. f(xmodp)x1modp によって定義される写像 f:{1,2,,p1}{1,2,,p1} は全単射であり,x±1(modp) であれば f(x)x(modp) であるから, (p1)!1(1)(2f(2))(kf(k))1(modp).

解法2. gmodp における原始根とすると, (p1)!n=1p2gng(p2)(p1)2gp12g(p1)p321(modp).

解法3. 以下の両辺を n=1p2(1+n) で割ればよい: n=1p2(1+n)m=1p2(1+1m)1(p2)!n=1p2(1+n)(modp).

上の解法1のように,うまく二つずつ組み合わせるというのもよくある手法である.以下はやや非自明なものである.

#9
★★★☆☆

n=130(1+n2)31 で割った余りを求めよ.

gmod31 における原始根とすると, n=130(1+n2)22n=229n41n2141m29,m15g4m1g2m141m29,m15g2m1g2m14(mod31). ここで,1m29,m15 を動くとき,4mmod302mmod30 のとりうる値全体は多重集合として一致することを用いた.

原始根を使わずに表現すれば,この問題では {i4mod31}{i2mod31} が多重集合として一致することを用いたことになる.しばしばmodp では a 乗写像と (a,p1) 乗写像が本質的に等価となるので,留意しておくと見通しが良いことがある(系21にも注意).

#10
★★★☆☆

n=0100(1n2+n4)101 で割った余りを求めよ.

#11
★★★☆☆

p=109+7 は素数である. a11091+a21091++ap1091p の倍数となるような, 1 以上 p1 以下の整数の組 (a1,a2,,ap) の個数を 10000 で割った余りを求めよ.

2. 法をどう選ぶか

まずは明らかなものから.

#12
★★☆☆☆

次の条件をみたす 2 以上 100 以下の偶数 n をすべて求めよ:

  • n<pq かつ (p1)q1+(q1)p1n(modpq) をみたす素数 p,q が存在する.

それぞれの素数を法として考えよう.p=q のときは様子が変わってしまうので,まずは p>q のときに考える. まず q=2 のときは (p1)q1+(q1)p1=p1+1=p により n=p となるが,n は偶数であるから不適. 以下,q>3 とする.いま,pq1 であるから (p1)q1+(q1)p11+1=2(modp) である.

さて,qp1 ならば同様に (p1)q1+(q1)p12(modq) となる. まとめれば (p1)q1+(q1)p12(modpq) となり,これは n=2 のときに対応する(たとえば (p,q)=(7,5) で実現できる).

qp1 のときも同様に (p1)q1+(q1)p12p(modpq) であるから,n=pqp+2 となる. あとは適当な大小評価によって絞り込めば,n=16,28,40,46,64,76,88 とわかる.

最後に p=q のときを考える.p=q=2 のときは n=2 を得る.p3 のとき, (p1)q1+(q1)p12(p1)p12(pp1(p1)p+1)2(p+1)(modp2). p32(p+1)<p2 であるから,このとき n=2(p+1) となり, n=8,12,16,24,28,36,40,48,60,64,76,84,88,96.

(p1)p1(modp2) のようにオイラーの定理などが適用できないときには, しばしば(フェルマーの小定理やLTEの補題の証明をなぞるように)二項定理を使うことで強引に値が計算できることは念頭に置くとよい. この発想は例題3にも現れた.

次の問題も似たような法のとり方が有効である.

#13
★★☆☆☆

1+pqqpp+q が素数になるような素数の組 (p,q) をすべて求めよ.

次は小さい具体的な法の選択について見ていく.系11なども念頭に置くこと.

#14
★☆☆☆☆
京大 2018

n37n+9 が素数となるような整数 n をすべて求めよ.

n37n+9n7n+90(mod3) により n37n+9=3 が必要であり,n=1,2,3

#15
★☆☆☆☆

p+q=(pq)3 をみたす素数の組 (p,q) をすべて求めよ.

n20,1,4(mod8) も非常に便利である.次の問題がよい応用例となるだろう:

#16
★★☆☆☆

x2+y2+z2=2m をみたす整数 x,y,z と非負整数 m の組をすべて求めよ.

その他の法について考えていく前に,次の主張を確認しておく:

定理 29. n を正整数とする. 整数 a を動かしたときに,anmodp のとりうる値は 1+p1(p1,n) 種類である.

これは原始根を利用すればすぐにわかる. 類似の命題がmodpm でも成立する. pa のときの処理が煩雑になるのでここでは割愛するが, npm1(p1) の最大公約数が大きいほどとりうる値の個数が少なくなるという性質は重要である. たとえば,a3a6 が現れる問題ではしばしばmod7mod9 が有用である.

#17
★☆☆☆☆

x3+y3+z3=5 をみたす整数の組 (x,y,z) は存在しないことを示せ.

#18
★★☆☆☆

8n+47 が素数となるような正整数 n は存在するか.

存在しないことを示す.そのために,8n+47 が素数になったと仮定する.

まずは,8=238±1=7,9 であることからmod7,9 が使えそうだが, mod7 では情報は増えない. mod9 で検討すると(mod3 でもよい),n1(mod2) が必要である. これによって 26m3+47 の形だけ考えればよい(n=2m1 としている). これができる限り少ない値しか取らない法を探そう.

まず,とりうる値が一つしかないのは(261=63 により)上ですでに調べた mod7,9 などである. とりうる値が二つになるのは,26+1=65 により(←なぜか?)mod5,13 などが該当する.

mod5 では m0(mod2) が必要で,mod13 では m1(mod2) が必要なので,矛盾する.

もう少し大きい法にも挑戦してみよう.

#19
★★☆☆☆
Rioplatense 2022 Level3 問1

x2+y11z2022!=n をみたす整数の組 (x,y,z) が存在しないような正整数 n は無限に存在することを示せ.

式の形がすさまじいので,十中八九適切な法を選べば解けるだろう(そうでないならば,超難問になりうる).

modm で考えるとして,2,11φ(m) が非自明な公約数を持ってほしい. 2022! は約数を大量にもつので,m は小さく定数として固定すれば事足りるだろう. この条件をみたす最小の m23 であり, 実際mod23 で考えれば n20(mod23) のとき x,y,z が存在しないことがわかる.

例題20はかなり極端な例である.巨大な素因数分解を実現する計算機とともに考えてよい:

#20
★★★★☆

2m5n=3 をみたす非負整数の組 (m,n) をすべて求めよ.

m8 のとき mod28 を見て n35(mod64) であり, さらに mod641 を見れば存在しないことが分かる.

あとは m7 を調べて (m,n)=(7,3),(3,1),(2,0)

641 とは,5641 の素因数であって,2 の位数も比較的小さい (64) ものである.

#21
判定中
USAMO 1982 問4

ある正整数 k が存在して,任意の正整数 n に対して k2n+1 が合成数となることを示せ.

参考. 式の形を少し変えて(2n の底や k の付く場所など),同様の問題が解けるか考察せよ.

なお,適当な法をとって考えることだけに拘泥してはならないことを,改めて注意しておこう.

#22
★☆☆☆☆

n4+4 が素数となるような正整数 n をすべて求めよ.

一見mod5 などを使いそうだが, n4+4=(n2+2n+2)(n22n+2) に注意することで n=1 のみ.

この手の因数分解や,単なる不等式評価は意外と失念しがちである. 特に上で使った恒等式(ソフィー=ジェルマンの恒等式)は, 指数の和の形に紛れ込むことがしばしばあるので注意しておこう.

3. 約数に対する考察

ここで主に使うのは,次の問題のような考え方である:

#23
★★★☆☆

p を素数とする.

(1) n1 ではない整数とするとき,np1n1 の素因数は p であるか p で割って 1 余ることを示せ.

(2) p で割って 1 余る素数が無限に存在することを示せ.

(2)を解くうえでは,最も有名な素数の無限性の証明の手順を思い起こすとよいだろう.

(1) np1n1p でない素因数 q であって, p で割った余りが 1 でもないものが存在したと仮定する. このとき,np1(modq) が成立する. また,これにより np で割り切れないから,フェルマーの小定理により nq11(modq) も成立する. よって,仮定により (q1,p)=1 なので,nn(q1,p)1(modq) が成立するが, 0np1n1=np1++n+11p1++1+1p(modq) となるので矛盾する(ここの議論にはLTEの補題を用いてもよい).

(2) p で割って 1 余る素数が有限個であったと仮定し,それらの総積を S とする. (1)n=pS とすると,np1n1p で割り切れず, また S の定め方から p で割って 1 余る素因数ももたない. これは (1) により np1n1=±1 であることを意味するが,明らかに不合理である.

この問題からもわかるように,anbn の素因数には位数の議論によって大きな制約が付くことが多く, これを利用した問題は数多い.もう少し精密に書くと,次のようになる:

#24
判定中

n を正整数とし,Φn(x,y)n 次斉次円分多項式とする. a,b が互いに素な整数であるとき, Φn(a,b)n と互いに素な素因数を n で割った余りは 1 であることを示せ.

dn とすると,Φn(a,b)anbnadbd であるから,適当な d をとればよい.

これ以降,anbn に関連した問題をあくまでここだけの用語として「円分型の問題」とよぶことにする.

これをディオファントス方程式に応用してみよう.次の問題は,安易に mod や不等式評価を使うだけでは難しそうだ.

#25
★★★☆☆
IMO 2006 SLP N5

x71x1=y51 をみたす 1 でない整数の組 (x,y) をすべて求めよ.

両辺ともに円分型の式なので,どちらの素因数に関する議論をしようか迷うが,左辺の素因数の制約の方が厳しい. 具体的には,px71x1 とすると,p=7 または p1(mod7) である. この情報を右辺に反映させたい. これは盲点になりがちだが,よく考えると右辺は (y1)(y4+y3+y2+y+1) と因数分解できるから, 二つの因数を 7 で割った余りはともに 0 または 1 である (としたいところだが,各因数が負のときは少しだけ話が違うので,y>1 を事前に確認しておく必要があることに注意しておこう). これらは両立しない.すなわち,解は存在しない!

状況に応じて,不等式評価との併用も重要である:

#26
★★★☆☆
APMO 2012 問3

np+1pn+1 が整数となるような素数 p と正整数 n の組をすべて求めよ.

p=2 のとき n=2,4 が条件をみたす. p3 のとき,分母は偶数なので分子も偶数.すなわち n は奇数である. 明らかに n3 であり,このとき np+1pn+11pn を意味する.

ここで上記の手法を用いる.n は奇数なので分母は p+1 で割り切れる.すなわち np1(modp+1). また,オイラーの定理により nφ(p+1)1(modp+1) なので n(p,φ(p+1))1(modp+1). いま p3 により φ(p+1)p+12<p であるから (p,φ(p+1))=1. よって,p+1n+1(modp+1) であり,特に n+1p+1 であるから,最初に得られた pn とあわせて n=p. これは条件をみたす.

よって,求める組は(p を任意の素数として)(n,p)=(p,p),(4,2) である.

#27
★★★☆☆

np1p2n2 が非負整数となるような素数 p と正整数 n の組をすべて求めよ.

p>n であることに注意しておく. 分子の素因数は,n1 の素因数か,p か,p で割って 1 余るもののいずれかである. 一方で,分母の約数を p で割った余りは,基本的に 1 になることはない. これでもう解けるだろう.

n=1 のときはつねに条件をみたすから,1<n<p とする. このとき,p2n2=(p+n)(pn) の素因数を p で割った余りは 0,1 にはなりえない. 一方で,np1n1 の素因数を p で割った余りは 01 であるから,(p2n2,np1n1)=1. よって n1p2n2 は正整数となるが,n1p2n2 とはなりえない.

よって,求める組は(p を任意の素数として)(n,p)=(1,p) である.

#28
判定中

2n+1n2 が整数となるような,1 より大きい整数 n をすべて求めよ.

LTEの補題を有名にした,いわゆる「マスターデーモン」である. カギは n の最小の素因数を使うことである.

分子は奇数であるから n も奇数である. n の最小の素因数を p とすると,2n1(modp) であり, フェルマーの小定理により 2p11(modp) でもあるから,2(n,p1)1(modp). ここで,pn の最小の素因数であることから (n,p1)=1 となるので, 30(modp),すなわち p=3 である.

いま,n=3ama は正整数,m3 で割り切れない正整数)と表すと, 分母は 32a 回割り切れるが,分子はLTEの補題により(n は奇数である事に注意)3a+1 回しか割り切れない. よって,a=1 が必要である.

m>1 として,その最小の素因数 q(5) をとると,同様にして 2(3m,q1)1(modq)q の最小性と (1)3=1 に注意すれば,231(modq) すなわち q9 を得るが,これはありえない. よって m=1となり,求める n3 のみである.

指数が素数や素べきでなくても,その素因数をとって最小性などを駆使すればうまくいくこともあるという好例である.

次の問題は見た目のうえでは少し毛色が違うが,方向性はまったく同じである.

#29
判定中
IMO 2012 SLP N6

x,y を正整数とする. 任意の整数 n について x2n12ny+1 で割り切れるならば,x=1 であることを示せ.

まず,x2n1 という形をふまえれば,2ny+1 の適当な素因数 p をとればよさそうである. p に課したい制約は,x2n1x(2n,p1)1(modp) に注意すれば p1 があまり 2 で割り切れないこと, さらに x に対して十分大きいことである.

一つ目の制約を考えると,できれば小さい n に対する 2ny+1 の素因数をとりたい(v2(p1) が小さく,抑えやすいので). しかし,二つ目の制約をふまえてその点は譲歩してもらい, 実は n が大きくても 2ny+1 の素因数 pv2(p1) が小さいものがあることを示したい.

いま,n の大小はさておき 2n(modp) は周期的だから, p2y+1 かつ十分大きいある整数 n に対して p2ny+1,といったようにできる. ここで,v2(2ny+1p1) は小さいので, 2ny+1p の素因数 q であって v2(q1) が小さいものが存在する. さらに n を工夫してとれば,q は大きくできる. というのも,フェルマーの小定理を使って, 小さい素数 r に対して 2ny+12y+1(modr) となるように n をとってしまえばよいからである.

n=1+φ((2y+1)2x2y+1!) とすると,2ny+10(mod2y+1) である. 2ny+12y+1(mod(2y+1)2) により,2ny+12y+1 は整数であり,かつ 2y+1 と互いに素である. さらに,2y+1 を割り切らない x2y+1 以下の任意の素数 q について 2ny+12y+10(modq) であるから, 2ny+12y+1 の素因数は x2y+1 より大きい. また,2ny+12y+112y2y+10(mod2v2(2y)+1) であるから, 2ny+12y+1 の素因数 p であって v2(p1)v2(2y) をみたすものが存在する. 仮定により x2n1(modp) なので,x2v2(2y)10(modp),すなわち x2y10(modp). しかし,p>x2y+1 なので,これは x=1 を意味する.

このように,p としていくらでも大きくとることで不等式評価に持ち込み,矛盾を導くことができる. 分母が円分型である場合には,大きな素数 p をとるためにジグモンディーの定理が使えることもある.

最後に,一見すると円分型ではないが,うまく利用できるものも見ていこう.

#30
判定中
Korea MO 2007

pp+qq+1pq で割り切れるような素数の組 (p,q) をすべて求めよ.

p=q のときは明らかに不適なので,対称性により p>q として考えれば十分. pp+qq+1qq+10(modp) だから (p1,q)=q または q+10(modp) となり, いずれにせよ p>q から p=q+1,すなわち (p,q)=(3,2) になる. よって,求める解は (p,q)=(3,2),(2,3)

#31
判定中
PMO 2022 問6

以下をみたす正整数 n1,n2,,n2022,m は存在するか: (n12020+n22019)(n22020+n32019)(n20212020+n20222019)(n20222020+n12019)=11m.

結論から言えば存在しないのだが, この手の問題は一つうまく構成するだけというオチである可能性もあるので, 本当に構成が思いつかないかは注意深く確かめた方がよい.

さて,構成を作ろうとしてもなぜうまくいかないのかを考えてみると, それぞれの文字が 11 で割り切れる回数などをうまく調節しようとしても,どうにもできないのである.

とにかく,ni2020+ni+1201911 以外の素因数をもつはずであることを示せばよいが, 一つを単独で見ても一筋縄にはいかないので,任意の i11 のべきだったとしてどうなるかを見ないといけない.

n1,n2,,n2022 はいずれも 11 で割り切れないとしてよい. 対称性により,i を動かしたときに ni2020+ni+12019 のうち最小のものが n12020+n22019=11k であったとすると, 任意の ini2020ni+12019(mod11k) が成立する. いま n120202022n120192022(mod11k) だが, n111 で割り切れないので n120202022201920221(mod11k)

さて,202020222019202211,10 と互いに素であることがわかるので,n11(mod11k) である. よって n111k1 だが,(11k1)2020+1n12020+n22019=11k であるから矛盾.

#32
★★★★★
Japan TST 2016 問9

p<q<r<s なる素数の組 (p,q,r,s) であって,psrq=3 をみたすものをすべて求めよ.

偶奇を見ることで p,rの一方は 2 であり,大小の制約とあわせて p=2 とわかる.このとき, 2ssq=3(sqrq)=3(sr)(sq1++rq1)<322<0 から s<qlog2s が得られる. また,2s>2s3=rq から s>qlog2r がわかる.

与式を 2(2s11)=rq+1 と変形する. フェルマーの小定理から左辺は s で割り切れるので,rq1(mods). したがって,sr+1 または s1(modq) となる. 大小の制約から前者は成立せず,s が奇数であることとあわせて s=2kq+1 とかける. 改めて与式は 2(22kq1)=rq+1 となり,特に 2(2k1)(2k+1)rq+1

さて,以下の不等式評価により,2(2k1)(2k+1) の素因数 aq 以下である: 2k1<2k+1<2s2q+1<2log2s2+1=s+1<slog2s+1<q+1. このとき,arq+1ar(q,a1)+1=r+1 を意味するので,2(2k1)(2k+1)r+1 である (vq(2(2k1)(2k+1))1 に注意).ここで, 2(2k1)(2k+1)=2s1q+12>2sq2>r2 により 2(2k1)(2k+1)r1>r+13 であるので,2(2k1)(2k+1)=r+1 が成立する.

これを s>qlog2r に代入すると 2kq+1>qlog2(22k+13).よって, 1>qlog2(2322k)qlog254. これにより q=3 となる. このとき s<qlog2s から (p,q,r,s)=(2,3,5,7) に絞られ,これは条件をみたす.

4. いつ位数について考えるべき(でない)か?

ここまで,位数に関する議論を中心に応用例を見てきた. 位数や原始根を使えば ak1(modn) なる k に関する情報がわかることが多く, ここで n をうまくとっておくことで有効な議論ができるのである. また,原始根をとることで単なる代数的操作になってしまうこともあることを見た.

逆に,位数の議論の限界について考えよう. まず,原始根は(存在こそすれど)具体的に求めることが難しい. たとえば,次の単純な予想が未解決であることからも,難しさが実感できるだろう:

Artinの原始根予想. 整数 a が平方因子をもたないとき,a を原始根にもつ素数 p が無限に存在するだろう.

すなわち,a を固定して p を動かすといった方向性の議論は,かなりの確率で筋が悪い.

また,位数は加法的な性質に乏しい. 具体的には,a,b,a+bmodp での位数には規則性があまりないので, その方針でうまくいくときには(a,b の自由度が圧倒的に高いなど)それなりの事情がある.

次に,ap1modp はわかるが, ap1modp2 についてはほとんど何もわからない. p2ap11 なる素数 p を「base a の Wieferich素数」といい, 各 a に対して base a の Wieferich素数が無限に存在するかも未解決である. すなわち,これについて議論するのも筋が悪いことが多い.

さらに,ap1a1 のような形が素数であるかどうかなども基本的にわからない.

そもそも,位数の議論は円分型の式(やそれに類するもの)に対して際立てて威力を発揮するものであるから, そうでない場合にはよく考える必要がある(もちろん,うまい式変形によって円分型に帰着できて解けるといった ad-hoc なパターンもある).

演習問題

#33
判定中

modp における原始根は(p の倍数の差を除いて)いくつか.

#34
★★☆☆☆

p を素数とする.以下の条件がすべての整数 x について成り立つような正整数 n をすべて求めよ:

  • xn1p で割り切れるならば,p2 でも割り切れる.
#35
判定中
India TST 2019 Day1 問2

a12018+a2,a22018+a3,,a20182018+a1 がすべて 5 べきとなるような正整数 a1,a2,,a2018 は存在しないことを示せ.

#36
★★★☆☆

3pq1+111p+17p を割り切るような素数の組 (p,q) をすべて求めよ.

#37
判定中

素数 p5 に対して,以下をみたす p2 以下の正整数 a が存在することを示せ: p2ap11,p2(a+1)p11.

#38
判定中

n2 以上の整数とする. 任意の素数 p に対して,pn+1p+1n2 で割り切れないことを証明せよ.

#39
判定中

53pq1(p2+10)(3q8) が整数となるような素数の組 (p,q) をすべて求めよ.

#40
★★★★★

正整数 a,b,c に対して,|2021a20b21c| のとりうる最小値を求め, それを実現する組 (a,b,c) をすべて求めよ.

#41
判定中

数列 a1,a2,an=2n+3n+6n1 (n=1,2,) で定めたとき, この数列のどの項とも互いに素であるような正整数をすべて求めよ.

#42
判定中
IMO 2011 SLP N8

k を正整数とし,n=2k+1 としたとき,次の 2 条件が同値であることを示せ:

  • n は素数である.
  • 1,2,,n1 の並べ替え a1,a2,,an1 と,整数列 g1,g2,,gn1 が存在して,任意の i=1,2,,n1 に対して ngiaiai+1 が成立する.ここで an=a1 とする.
#43
判定中
ガウスの予備補題

p を奇素数とし,ap で割り切れない整数とする. aip で割った余りが p+12 以下ならば f(i)=1 とし,そうでないならば f(i)=1 とするとき, χ2(p,a)=i=1p12f(i) を示せ.

#44
判定中

a,b を互いに素な正整数とし,m,n を非負整数とするとき,以下を示せ: gcd(ambm,anbn)=|agcd(m,n)bgcd(m,n)|.

参考. + の一部,または全部を に変えた問題についてはどうか?

#45
判定中

n2 以上の整数とするとき, $a_1\mid2^{a_2}-1, ~ a_2\mid2^{a_3}-1,\ldots, a_n\mid2^{a_1}-1(a_1,\ldots,a_n)$ をすべて求めよ.

#46
★★★☆☆

109 より大きい素数 p について,4p+1 も素数であるとき, (4p+1)1 を十進小数展開すると,小数点以下の桁には 0,1,,9 がすべて現れることを示せ.

参考文献