ユークリッドの互除法の正しさ
大きな整数の最大公約数は、約数をすべて列挙しなくても求められます。ユークリッドの互除法は「割った余りに置き換えても共通の約数は変わらない」という事実に基づきます。答えが正しい理由と、必ず終了する理由を分けて示します。
定理の主張
整数 を ()と割り算すると、 これを繰り返し、余りが になったときの最後の非零の余りが、元の最大公約数です。最初の割り算で余りが0なら、答えは最初の除数 です。
成立する条件
ここでは正整数を扱い、最大公約数を正に取ります。一般の整数は絶対値に置き換えられます。
()とします。 はこの手順の対象に含めません。
証明
- が の共通の正の約数だとします。 が の倍数なら、その整数係数の差 も の倍数です。したがって は の共通の約数です。
- 逆に、 が の共通の正の約数なら、 も の倍数です。よって は の共通の約数です。
- 以上の両方向により、二組の共通の正の約数は完全に一致します。したがって、その中で最大のものも等しく、 が得られます。
- 余りが非零なら、次に を で割ります。現れる非零の余りは正整数で、 と真に減少します。正整数の真の減少列が無限には続かないので、有限回で余りが になります。
- 最後に得られた組を とすると、その最大公約数は です。各段階で最大公約数が変わらないことを既に示したため、この が最初の二整数の最大公約数です。
使ってみる
と では、 最後の非零の余りは なので、 です。
式を逆向きにたどると 。最大公約数を元の整数の整数係数の和で表す拡張互除法にもつながります。
注意点
最後の「余り 」を答えにしないでください。答えはその一つ前の非零の余りです。公約数が保存される理由だけでは終了の証明にはならず、余りが小さくなることも必要です。最初の余りが0の場合は、元の小さい方の数 が答えになります。
確認問題
と の最大公約数を求めてください。
解答と考え方を見る
、、。最後の非零の余りは なので、最大公約数は です。
参考資料・次に読む資料
- MIT OCW:Mathematics for Computer Science論理・証明法・整数・数え上げ・離散確率の講義。
- OpenStax:Precalculus 2e式・関数・指数・対数・三角関数・数列を学ぶ教科書。
資料確認日:2026-11-03。