数学切り抜き帳
数学目次へ
互除法 ― ユークリッドの算法
桜花学園大学教授
岩井 齊良
 2つの自然数 A,B の最大公約数を求める方法として次の計算法が知られている.

    A を B で割った余りに置き換える
    B を A で割った余りに置き換える
    A を B で割った余りに置き換える
    B を A で割った余りに置き換える
    ……
 この操作を続けると,A,B の値はどんどん小さくなり,ついには余りが 0となり,この操作は続けられなくなる.このとき,
    最後の自然数(0 が現れる1つ手前の数)が A,B の最大公約数である

 この方法を互除法またはユークリッドの算法という.
 算法というのは,

    問題を解決する定型的な手法・技法

のことをいう(広辞苑).
 別の言い方をすれば,「戦略的で大がかりな計算法」のことを算法というのである.

 互除法の実例をあげよう.

例題1 A=1000,B=310 の最大公約数を求めよ.
 解

A B 備考
1000 310
70 310 1000÷310=3 … 70
70 30 310÷70=4 … 30
10 30 70÷30=2 … 10
10 0 30÷10=3

 最大公約数は 10 である.

類題 次の自然数の最大公約数を求めよ.
 (1)84, 48
 (2)880,4200

 互除法は,通常はこのように「最大公約数を求める方法」として知られているが,われわれは互除法を「ある数列を作り出す方法」と考えよう.

α,βは与えられた自然数とする.そこで,α0=α,α1=βとおき,
   α0 をα1 で割ったときの商をθ1,余りをα2
   α1 をα2 で割ったときの商をθ2,余りをα3
   α2 をα3 で割ったときの商をθ3,余りをα4
   ……
とする.
 このとき,

   α1 > α2 > α3 > α4 > ……

 となるので,ある時点でαk= 0 となる.
 そこで,αν> 0 ,αν+1= 0 とする.

 このとき,次の関係式が成り立つ.

   α0=α1θ1+α2,    0<α2<α1
   α1=α2θ2+α3,    0<α3<α2
   α2=α3θ3+α4,    0<α4<α3
   ……
   αν−2=αν−1θν−1+αν, 0<αν<αν−1
   αν−1=ανθν

この状況を次の図式で表すことにする.

   

この図で,最初の部分

   

は,

   α0 をα1 で割ったときの商がθ1で余りが α2である

ことを示している.
 他の部分も同様である.

 さて,一般に,

    A=BQ+R 

という関係式があると,

    A, B の公約数は R の約数であり,B,R の公約数は A の約数である.

したがって,

   (A,Bの公約数)=(B,Rの公約数)

となる.
 よって,双方の公約数のうち一番大きいものは等しくなければならない.つまり,

   (A,Bの最大公約数)=(B,Rの最大公約数)

となる.
 整数 α,β の最大公約数を(α,β)と書くと,

   A=BQ+R のとき, (A,B)=(B,R) 

このことを,上の関係式にあてはめると,

   α0=α1θ1+α2        →  (α0,α1)=(α1,α2
   α1=α2θ2+α3        →  (α1,α2)=(α2,α3
   α2=α3θ3+α4        →  (α2,α3)=(α3,α4
   ……
   αν−2=αν−1θν−1+αν   →  (αν−2,αν−1)=(αν−1,αν
   αν−1=ανθν

 また,最後の関係から,  (αν−1,αν)=αν
よって,

   (α0,α1)=(α1,α2)=(α2,α3)=……=(αν−1,αν)=αν

つまり,最後の自然数が最初の2数 α0=α,α1=β の最大公約数であることが示された.

例題2 A=108,B=472 の最大公約数を求めよ.
 解

   

 最大公約数は 4

 ここできまる数列

     α0,α1,α2,α3,……,αν−1,αν,0

を(自然数の組 α,βに対し)互除法できまる数列と呼ぼう.