本文へスキップ

ユークリッド互除法とは?

ゆーくりっどごじょほう

ユークリッド互除法とは、二つの整数最大公約数を効率的に求めるためのアルゴリズムです。

ユークリッド互除法(Euclidean algorithm)は、二つの正の整数最大公約数(GCD)を求める最古かつ最も広く知られたアルゴリズムのひとつです。古代ギリシャ数学者ユークリッドが著書『原論』(紀元前3世紀頃)に記したことからこの名称がつけられました。

基本的な仕組みは「二つの整数 a と b(a > b)があるとき、a と b の最大公約数は a を b で割った余り r と b の最大公約数に等しい」という性質を繰り返し利用することです。具体的な手順は以下のとおりです。

  1. a を b で割り余り r を求める(a = b×q + r)
  2. 余り r が 0 なら、b がその時点での最大公約数
  3. r が 0 でなければ、a に b を、b に r を代入して手順1を繰り返す

例として 252 と 105 の最大公約数を求める場合、252 ÷ 105 = 2 余り 42 → 105 ÷ 42 = 2 余り 21 → 42 ÷ 21 = 2 余り 0 となり、最大公約数は 21 です。

ユークリッド互除法の計算量は入力の桁数に対して対数的(O(log min(a,b)))であり非常に効率的です。現代でもプログラミングでの分数の約分・座標計算・暗号理論(RSA暗号の鍵生成など)まで幅広い場面で応用されています。

使い方・例文

「プログラムで二つの数の最大公約数を求める際にユークリッド互除法を使うと、数が大きくても素早く計算できる」という場面でよく登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語