数学A / 整数の性質
隣り合う階乗+1の最大公約数
問題
を自然数とする。 と の最大公約数を求めよ。
ヒントを見る
2つの数の最大公約数は、一方から他方の何倍かを引いても変わらない。 に、 の「ちょうどよい倍数」をぶつけて、階乗を消してしまえないか。
解答・解説
方針
最大公約数は、一方から他方の倍数を引いても変わらない。 と の差を作ると だけが残り、問題は と の最大公約数に落ちる。 が の倍数であることから互いに素とわかる。
解答
⓪ 発想 — どう考え始めるか。 巨大な2数の最大公約数は、互除法の原理「(倍数を引いても不変)」で小さくするのが定石だ。
は、 にとても近い。差を作ると階乗が消えて、 だけが残る。
これで問題は「 と 」という圧倒的に小さい2数の話になり、最後は「 は の倍数」という当たり前の一言で決着する。
① 差を作って小さくする。 とおく。 は2数の組合せ
も割り切る。よって は と の公約数でもある。
② 互いに素で仕上げる。 と仮定する。 だから、 は を因数に含み の倍数。すると
となり に矛盾。よって 、すなわち と は互いに素。
まとめ: 互除法は「割り算」でなく「倍数を引いて小さくする」操作だと捉えると、階乗のような巨大な数にも自在に使える。 が 〜 のすべての倍数である、という当たり前が最後の一撃になる構図も覚えておきたい。
発展 — 一歩先へ。 ②の議論を裏返すと、「 の素因数はすべて より大きい」ことが分かる。どんな に対しても より大きい素数が存在する — つまり素数は無限にある、という古典の証明(ユークリッド)が、この1行から出てくる。
(互いに素)
別解
素因数の目で見る(得意な人向け)。 公約数 を丸ごと扱う代わりに、その素因数 を1つ取って追い詰める。
を の素因数とする。まず から、 の大きさが分かる。もし なら、 は の因数だから 。すると となり矛盾。よって
一方、本解①と同じ引き算で 。素数 が を割り切るなら のはずだ。
「」と「」が正面衝突した。そんな素数 は存在しない。素因数をもたない自然数は1だけだから、。
大きさの矛盾で仕留めるこの形は、素数がらみの互いに素の証明でよく効く。「 の素因数は より大きい」という部品(発展の種)も、この視点の副産物だ。
ポイント
- で階乗を消す。
- かつ なら 。
- 答えは1(隣り合う階乗+1は互いに素)。
よくある間違い
- 引き算の組合せを誤る。 倍するのは の側。階乗が消えるように係数を設計する。
- から「」などと書く。1を割り切る自然数は1だけ、と正しく閉じる。
- 小さい での検算(、、)を省く。一般論の前後に具体で足場を確かめる。