3

整数問題

466
0

はじめに

どうもぷりんねこです。整数論や数学のいろいろなことについて書いていこうと思います。数学の記事を書くのは初めてなので拙いものかもしれませんが読んでいただければ幸いです。

整数論

ここでは理論の解説はせずに、どうやって問題を解いていくのかなどの思考プロセスの部分を書いていこうと思います。理論を学びたいのであれば、「マスターオブ整数」(東京出版)または、難しいですが「初等整数論講義」(高木貞治)がいいと思います。
数学の本などを読んでいると、どうやって思いつけば良いのかわからないような解説などが結構あります(僕自身もよく出会います)。そのようなものに苦しんでいる方々の助けに少しでもなれたらいいかなーと思います。なるべく丁寧に書いていくつもりなので分かるとこはどんどん飛ばしてもらって大丈夫です!
問題の難易度は筆者の主観によって☆1から☆5までに分類されます。
では早速いきましょう!(問題はまず自分で解いてみることをおすすめします)

☆1

(1)3n=k3+1 を満たす正の整数の組(k,n)を全て求めよ。
(2)3n=k240を満たす正の整数の組(k,n)を全て求めよ。
(2010 千葉大-医)

思考過程

  1. よく知られていますが、整数問題には解くときに意識するといい3つの鉄則のようなものがあります。

鉄則

  1. (素)因数分解して積の形にする
  2. 不等式で文字の範囲を絞り込む
  3. 約数,倍数,余り(mod)に注目する

この3つをしっかり使えるようになるだけで整数問題が一気に解けるようになると思います。

この問題は鉄則の1を使うことができますね。右辺が因数分解できることに気づけたのでラッキーです。因数分解すると、

3n=(k+1)(k2k+1)

となります。ここで、左辺が3(素数)の冪乗なので、k+1,k2k+13の冪乗になるはずです。それぞれ文字でおいてあげましょう。

k+1=3p
k2k+1=3q

とします。(p,qは1以上の整数。p,qがそれぞれ0のときに成り立たないことはすぐわかります)
一つ目の式からkを消去します。k=3p1を二つ目の式に代入して、整理すると

3p(3p11)+1=3q1

となります。ここで、3p(3p11)の部分が3の倍数なので右辺も3の倍数なら、13の倍数じゃないので矛盾します。よって3q1=1となり、q=1が必要です。k2k+1=3qに代入して、k=2が必要です。3n=k3+1k=2を入れてみると、n=2となりうまくいきます(十分)。
よって(k,n)=(2,2)のみ。

(感想)
見た目は難しそうでしたがけっこう一直線に終わりました。素数の冪乗を積の形にしてそれぞれ文字でおくやり方はしばしば使います。

(2)このままでは何も情報がないのでとりあえずmodを回しにいきます。
3nが消えてほしいのでmod3でみると、与式は
k21(mod3)となります。

kmod3012
k2mod3011

よって上の表からk1,2(mod3)となります。
ここからちょっと考えましたがあまり議論は進みませんでした。
では次は40を消すためにmod4をみてみると、与式は
(1)nk2(mod4)
となります。さっきと同じ感じで表をかくと

kmod40123
k2mod40101

となります。表からk201のどちらかです。また、(1)nnが偶数のとき1と等しく、nが奇数のとき1と等しいので
k2(1)n1(mod4)となる必要があり、kは奇数で、nは偶数です。n=2mとおいて与式に代入すると
32m=k240となり、これは「a2b2」の形の因数分解が使えます!
(k3m)(k+3m)=40となるのでk3m=M,k+3m=Nなどとおいてやると結局
M<N
MN=40
NM=23m
を解けばいいとわかります(kは自動的に決まる)
一つ目と二つ目の式からM,Nの候補は以下のようになります

M1245
N4020108

このうちM,Nの差が2(3の冪乗)となるようなものを探すと
(M,N)=(2,20),(4,10)
でありこれらのとき(k,n)=(11,4),(7,2)となり与式をみたすので、解はこれらのみです。

(感想)
こちらはmodをみて因数分解するだけでした。mod3,4 で平方数が0,1に等しくなるのはめっちゃ重要です!! (一つ目と二つ目の表からわかります)

記号、用語について

(i) abを割り切るとき、abと表します。
例:721
(ii)pを素数とします。このときnZに対して、npで割り切れる回数、すなわちnを素因数分解したときのpの指数をvp(n)で表します。便宜的に、vp(0)=とします。
例:v2(8)=3,v3(7)=0,v5(15)=1
(iii)abの最大公約数をgcd(a,b)で表します。
例:gcd(12,42)=6
(iv)素数のべき乗の形であるような数のことを単に素べきといいます。
例:81=34より81は素べきです

☆2

8n+n2n+nの倍数となるような正の整数nを全て求めよ。
(JMO/2009 本選1)

思考過程

こういう問題は、割り算の形にしてそれが整数となることを示すやり方が多いのでそれを使ってみます。つまり、k=8n+n2n+nZであるようなnを探すことにします。
分母、分子のどちらにもある+nの部分がじゃまなので2n+nをくくり出して+nを消すことを考えます。整理すると、
k=2n(2n1)(2n+1)2n+n+1Z
となるので、2n(2n1)(2n+1)2n+nZ
が必要十分条件です。ここで、nが奇数なら2n+nも奇数となり、2nと互いに素になるので(2n1)(2n+1)2n+nZが得られ、議論が進みそうなので偶奇を調べます。mod2をみてみましたが何も起こらず行き詰まります。悩んでいても仕方ないのでn=2mとおいて、まずnが偶数の時を調べました。与式に代入して、
22m+2m82m+2m両辺2で割って、22m1+m26m1+mとなります。同様に、"+m"の部分が消えるように差をとって、22m1+m26m1+m(22m1+m)=22m1(24m1)となりますが、これも最初と似た形になり、進捗が生まれません。なので、議論をさかのぼってgcd(2n+n,2n)を考えてみました。
ユークリッドの互除法からこれはgcd(2n,n)に等しく、2nが素ベきであることに注目すると、nが何回2で割り切れるかが気になってきます。
v2(n)=lとすると、
n=2lttは奇数)とできます。l2のとき、二項定理より、
n=2lt2l=(1+1)l=1+lC1++1l+2>lなので、n>lであり、この不等式はl=0,1のときも成り立つので、一般にn>lが成立します。よってgcd(2n,n)=2l、すなわちgcd(2n+n,2n)=2lが得られました。n=2lt2n(2n1)(2n+1)2n+nに代入して、gcd(2n,n)=2lを使って約分して、と思いましたが流石に複雑すぎると思ったのでこのやり方もやめておきましょう。でも、色々試行錯誤しているうちに、脳が働いてきて、問題の本質が見えやすくなってきました。実験することは非常に大切です。さて本題に戻りましょう。2n(2n1)(2n+1)2n+nの式の形から、Zsigmondyの定理とか、LTEの補題とかが浮かびますが後で試すことにしましょう。一応↑の2つがどんなものであるか書いときます。どちらも美しい定理なのでいつかまた別の記事で解説すると思います。今は紹介だけにとどめておきます

Zsigmondyの定理

a,bを互いに素な正の整数、n2以上の整数とする。このとき、2616およびn=2かつa+b2の冪であるという例外ケースを除いて、anbnのある素因数pが存在して、p1kn1なる任意の整数kに対してakbkを割り切らない

LTEの補題

pが奇素数,x,ypで割り切れない整数でxy(modp)なら,
vp(xnyn)=vp(xy)+vp(n)
が成り立つ.

さて、ここまで色々やってきましたが何もうまく行きませんね。最初から考え直してみましょう。最初は"+n"の部分を消しましたが、8nの部分を消してみてはどうでしょう。3乗の和の因数分解公式を使って8n2n+nで消しにいきましょう。2n+n(2n)3+n3=8n+n3なので、
2n+n8n+n2n+n8n+n3(8n+n)=n3n
つまり2n+nn3nが必要十分条件です。
ここでn>1のときを考えます。2n+n>0,n3n>0なので、n3n2n+nが必要です。しかし、直感的にも分かるとおりnが十分大きいとき2n+n>n3nとなって矛盾します。ここからnの範囲(上界)がわかります。(←これは鉄則の2です!)あとは簡単ですね。表などを書いて調べてみましょう。題意を満たすものには◯をつけました

n2n+nn3n
266
31124×
42060
537120×
670210
7135336×
8264504×
9521720×
101034990×
1120591320×

表から、n10なら2n+n>n3nとなりそうですね。これをちゃんと証明しましょう。やり方は色々考えられますが(微分、二項展開、グラフの差がどんどん大きくなっていくことを示す、など)ここでは素直に帰納法を使って示してみます。

n10ならば2nn3+2n>0

n=10のとき明らかに成立する。
n=k(k10)のときに成立すると仮定する。
n=k+1のとき、
2k+1(k+1)3+2(k+1)=2(2kk3+2k)+k33k25k+1
仮定から2kk3+2k>0で、簡単な計算によりk10のときk33k25k+1>0であることもわかるので、この場合も成立する。
よって数学的帰納法から、示された。

この補題から、n<10の範囲で調べれば十分であり、上の表から
n=2,4,6のみであるとわかる。
また、n=1も題意を満たすので、以上を合わせて、
n=1,2,4,6が解。

(感想)いったん解けてしまうとあっけないですね。最初らへんでめちゃくちゃ無駄な考察いっぱいしてますね、、結局Zsigmondyの定理とLTEの補題も使いませんでしたしw 無駄に知識が多いと僕のように沼ったりします。今回のポイントは
(指数関数)>> (多項式)という直感的な不等式です。ここら辺の感覚は練習すれば身についてきます。余談ですが、2n+n>n3nよりも強い2n>n3を示すこともできます。こちらは簡潔に証明できます。
f(n)=n32nとすればn10のとき
f(n+1)f(n)=12(1+1n)312(1+110)3<1なのでf(n)は単調減少な関数で、任意のnに対してf(n)f(10)=125128<1となり、証明が完了します。

☆1

nが相異なる素数p,qの積n=pqであるときn1個の数nCk(1kn1)の最大公約数は1であることを示せ
(京大ー理系)

思考過程

さて、二項係数の最大公約数についての問題ですね。最大公約数を直接求めに行くのはさすがに厳しそうなので、最大公約数が1にしかなりえないことを示しましょう。また、nが相異なる素数の積という特殊な形をしていることも使えそうです。まずわかることとして、nC1=pqです。この時点で、最大公約数が1,p,q,pqのいずれかにしかならないことが分かります。なので、pの倍数でないものと、qの倍数でないものが存在すれば勝ちです。あとは直感でてきとうに見つけてくればいいのです。nC2,nC3,を見てもいいですが、これはあまり筋がよくありません。問題の条件をちゃんと活用してあげましょう。nCpなんかどうでしょう?
nCp=pqCp=pq(pq1)(p(q1)+1)p(p1)1
分母、分子に着目すると、どちらもp1回だけ割り切れることが分かります。よってnCppの倍数ではありません!!
同様にnCqqの倍数ではないです。また、1<p,q<nなのでnCp,nCqを考えても問題ありません。以上より、証明ができました!

(感想)二項係数の整数問題は難しくなりがちなのですが、思ったより簡単にできました。やっぱり素数は偉大ですね。「素数で割り切れる回数をみる」または「素因数をとる」という操作は少し発展的なテクニックですが慣れれば非常に強力なものになります。解答ではいきなりnCpを考えましたが、(p,q)=(2,3),(3,5)などで実験してからやってもいいと思います。

用語

整数係数多項式全体の集合をZ[x]と表します
例えば2x25x+3Z[x]です

☆2

f(x)Z[x]のときf(1),f(2),f(3),の中には素数でないものが存在することを示せ。ただしf(x)は一次以上とする
(有名題)

思考過程

整数係数の多項式が絡む問題には定石と言っていいほど大切なテクニックが一つあります。それは次のようなものです。

f(x)Z[x]のとき,任意のa,bZに対し
abf(a)f(b)
が成り立つ

証明は普通にf(x)をおいてやって計算すればいいです。
f(x)=c0+c1x+c2x2+c3x3++cnxnとおくと、
f(a)f(b)=c1(ab)+c2(a2b2)+c3(a3b3)++cn(anbn)
となり、abakbkなので示せました

さて、どうやって証明しましょうか。直接は無理そうなので、背理法でやってみます。
f(1),f(2),f(3),が全て素数であると仮定しましょう。てきとうにiをとってきて、f(i)=pです
さっきの補題から、
pf(i+p)f(i)
であり、f(i)(=p)はもちろんpの倍数なので、f(i+p)pの倍数になります。ここで、仮定からf(i+p)は素数なので、f(i+p)=pとなります!!!!
これを一般化しましょう。補題より、任意のk>0に対して
kpf(i+kp)f(i)=f(i+kp)p
なので、pf(i+kp)であり、f(i+kp)は素数なのでf(i+kp)=pです!!
この式の形からf(x)は周期的ですね。僕はここでグラフの形をイメージしました。すると、
f(i)=f(i+p)=f(i+2p)=f(i+3p)==p
なので、f(x)=pに無限個の解があることとなり矛盾します!
よって背理法から、示せました。

ちなみに、f(x)を無理やりずらして定数項を出して考えることもできます。f(x+1)=g(x)とおくと、g(x)Z[x]です。示すべきことは、g(0),g(1),g(2),の中に素数でないものが存在することです。先ほどと同様に背理法でやります。g(0),g(1),g(2),が全て素数であると仮定します。特にg(0)は素数です。よって素数qを用いて
g(x)=amxm+am1xm1++a1x+q
となります。qg(kq)よりg(kq)=qであり、g(x)q=0に無限個の解があるので矛盾です!

(感想)なんか数オリっぽい問題で楽しかったです。上の補題は非常に大事なので覚えておきましょう!
なんとなくZ[x]Zは似ているような感じがします。Z[x]が絡む整数問題はどれも面白いですね。

さいごに

いかがだったでしょうか。こんな感じで書いていこうと思います。まだまだ問題は増やしていくつもりです。気長に待っててください。記事のミスや解いてほしい問題などあればなんでも送ってください!どんな些細なものでも大丈夫です。
長くなってしまいましたが最後まで読んでいただきありがとうございます

投稿日:123
更新日:14日前
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

整数論が好きです

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 整数論
  3. さいごに