数学A / 整数の性質

隣り合う階乗+1の最大公約数

最難関編最大公約数互除法

問題

を自然数とする。 の最大公約数を求めよ。

ヒントを見る

2つの数の最大公約数は、一方から他方の何倍かを引いても変わらない。 に、 の「ちょうどよい倍数」をぶつけて、階乗を消してしまえないか。

解答・解説

方針

最大公約数は、一方から他方の倍数を引いても変わらない。 の差を作ると だけが残り、問題は の最大公約数に落ちる。 の倍数であることから互いに素とわかる。

解答

⓪ 発想 — どう考え始めるか。 巨大な2数の最大公約数は、互除法の原理「(倍数を引いても不変)」で小さくするのが定石だ。

は、 にとても近い。差を作ると階乗が消えて、 だけが残る。

これで問題は「」という圧倒的に小さい2数の話になり、最後は「 の倍数」という当たり前の一言で決着する。

定理互除法の原理: をともに割り切るなら、 の形の数もすべて割り切る

① 差を作って小さくする。 とおく。 は2数の組合せ

も割り切る。よって の公約数でもある。

② 互いに素で仕上げる。 と仮定する。 だから、 を因数に含み の倍数。すると

となり に矛盾。よって 、すなわち は互いに素。

まとめ: 互除法は「割り算」でなく「倍数を引いて小さくする」操作だと捉えると、階乗のような巨大な数にも自在に使える。 のすべての倍数である、という当たり前が最後の一撃になる構図も覚えておきたい。

発展 — 一歩先へ。 ②の議論を裏返すと、「 の素因数はすべて より大きい」ことが分かる。どんな に対しても より大きい素数が存在する — つまり素数は無限にある、という古典の証明(ユークリッド)が、この1行から出てくる。

(互いに素)

別解

素因数の目で見る(得意な人向け)。 公約数 を丸ごと扱う代わりに、その素因数 を1つ取って追い詰める。

の素因数とする。まず から、 の大きさが分かる。もし なら、 の因数だから 。すると となり矛盾。よって

一方、本解①と同じ引き算で 。素数 を割り切るなら のはずだ。

」と「」が正面衝突した。そんな素数 は存在しない。素因数をもたない自然数は1だけだから、

大きさの矛盾で仕留めるこの形は、素数がらみの互いに素の証明でよく効く。「 の素因数は より大きい」という部品(発展の種)も、この視点の副産物だ。

ポイント

  • で階乗を消す。
  • かつ なら
  • 答えは1(隣り合う階乗+1は互いに素)。

よくある間違い

  • 引き算の組合せを誤る。 倍するのは の側。階乗が消えるように係数を設計する。
  • から「」などと書く。1を割り切る自然数は1だけ、と正しく閉じる。
  • 小さい での検算()を省く。一般論の前後に具体で足場を確かめる。