ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
ユークリッド幾何学などで知られる古代ギリシャの数学者ユークリッド(エウクレイデス)が、著書である原論に書き残した最大公約数の求め方の通称。
実際の発案はユークリッドではなく、更に前のピタゴラスの時代であるとも言われている。
自然数aとbに対する最大公約数を求めることとし、それを数式でgcd(a,b)と書くとする。
この時、a>b>0とし、a÷bの剰余をr≧0とすると、常に次の式が成立する。
gcd(a,b)=gcd(b,r)
a>b>r
この式が成立する理由は次のとおり。
この方法での実際の求め方を考えてみる。上の命題により、gcd(a,b)とgcd(b,r)が等しいことを求められたので、gcd(a,b)を求めるにはgcd(b,r)を求めれば良いことになる。
そしてもし、gcd(b,r)がなお分からなければ、bをrで割って同様に計算を継続させればよく、これを繰り返せば最終的にはgcd(x,0)、x>0、となり、そしてgcd(x,0)=xであるので、これにより最小公倍数を求めることができる。以上、証明終わり。
例えば、gcd(19050,16637)を考えてみる。ここまで大きな数になると素因数分解も困難になるため通常の方法では最大公約数は求めづらく、ユークリッドの互除法が活躍できる。
よって、19050と16637の最小公倍数は127であることが求められた。
これをコンピュータープログラムへ実装する場合、aとbが一致するまでループさせ、大きい方から小さい方を引く、ということを繰り返す。両者が一致したとき、それが最大公約数である。
gcd.c (C言語による例)
コメントなどを投稿するフォームは、日本語対応時のみ表示されます