【基本】ユークリッドの互除法の使い方

【導入】ユークリッドの互除法 で書いた通り、「2つの大きな数の最大公約数を求める」には、結構計算が大変なんですよね。例えば、「$1649$ と $221$ の最大公約数は?」という問題を考えてみましょう。2で割れるか、3で割れるか、と小さい数字から順番に割っていってもいいのですが、それだと時間がかかってしまいます。

ユークリッドの互除法は、「数が大きすぎて、最大公約数を求めるのが大変だ」というときに使える技です。この技を知っていれば、大きな数がきても、最大公約数を求めるための計算量はグッと少なくなります。

詳しい原理については、別ページの【標準】ユークリッドの互除法の原理で説明するとして、このページでは、どのような発想を使っているのか、どうやって計算するのか、を説明していきます。

【広告】

「ユークリッドの互除法」の発想

上にも書きましたが、次の問題を考えてみましょう。

例題
$1649$ と $221$ の最大公約数を求めなさい。

この最大公約数を G とおくと、$1649$ は G で割り切れるし、 $221$ も G で割り切れますよね。ということは、この2つの差「$1649-221$」も $G$ で割り切れることがわかります。

basic-euclidean-algorithm-01

これをもっと進めていけば、$1649-221\times 2$ も $1649-221\times 3$ も $1649-221\times 4$ だって、$G$ で割り切れるはずです。

「$1649$ から $221$ を何度も引く」を進めていくと、割り算にたどり着きます。割り算をすると「$7$ 余り $102$」と計算できるので、\[ 1649 -221 \times 7 = 102 \]と書けることがわかります。この式で、 G で割り切れるものに注目してみましょう。

basic-euclidean-algorithm-02

$1649$ も $221$ も G で割り切れるので、余りである $102$ も G で割り切れないといけません

このような流れから、「割った余りとの最大公約数を考えればいいのではないか」という発想が生まれてきます。余りの方が小さい数になるので、考えやすくなりますよね。実際、 $1649$ と $221$ の最大公約数は、 $221$ と $102$ ($=1649$ を $221$ で割った余り) の最大公約数と同じになります。

厳密な証明は、【標準】ユークリッドの互除法の原理ですることにして、ここでは、「割った余りとの最大公約数を考えればいいんだな」ということだけおさえておけばOKです。

【広告】

「ユークリッドの互除法」の具体的な計算方法

引き続き、「$1649$ と $221$ の最大公約数」について考えていきます。

先ほども書いた通り、「$1649$ と $221$ の最大公約数」を考えるには、割った余りとの最大公約数を考えればいいんでしたね。 $1649$ を $221$ で割った余りは、計算すると $102$ だとわかるので、「$221$ と $102$ の最大公約数」を考えればいいわけです。

実は、「ユークリッドの互除法」は繰り返し使うことができます。つまり、「$221$ と $102$ の最大公約数」を考えるには、「$102$ と、”$221$ を $102$ で割った余り”との最大公約数」を考えればOKなんです。

basic-euclidean-algorithm-03

$221$ を $102$ で割った余りを計算すると $17$ だとわかるので、「$102$ と $17$の最大公約数」を考えればいい、ということです。

さらにさらに、もう一度繰り返してみます。今度は、 $102$ を $17$ で割った余りを考えてみます。すると、今回は割り切れてしまいます。これはどういうことかというと、「$102$ と $17$ の最大公約数」は $17$ である、ということなんですね。

basic-euclidean-algorithm-04

これを逆にたどっていくと、「$221$ と $102$ の最大公約数」も $17$ だし、「$1649$ と $221$ の最大公約数」も $17$ だとわかる。これが、ユークリッドの互除法の使い方です。

小さい数字から順番に割り切れるかどうかチェックすることなく、最大公約数を求めることができます。「余り」に注目するので、「ユークリッドの互除法」は、大きな数の最大公約数を考える場合に、大きな威力を発揮することがわかります。

おわりに

ここでは、ユークリッドの互除法に関する考え方と、具体的な計算方法を紹介しました。「割り算をして、余りとの最大公約数を考えていく」方法を繰り返し使えば、最大公約数が求められます。

このユークリッドの互除法に関する数学的な証明は、【標準】ユークリッドの互除法の原理でとりあげているので、そちらもぜひチェックしておきましょう。