応用情報暗記無料で始める

ユークリッドの互除法とは?ゆーくりっどのごじょほう

ユークリッドの互除法とは、二つの整数の最大公約数を、大きい方を小さい方で割った余りへ置き換える操作を、余りが0になるまで繰り返して求めるアルゴリズム。1回ごとに数が急速に小さくなるため計算量はO(log min(a,b))に収まり、素因数分解を経由して共通因数を探す方法とは桁違いの差がつく。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では1問の解説で触れられています。

応用情報技術者試験の頻出用語/テクノロジ系

この語が出る過去問を解く →

背景

最大公約数を素直に求めようとすれば両方を素因数分解することになるが、素因数分解は桁数が増えると現実的な時間では終わらない。割り算の余りに置き換えても最大公約数は変わるという性質を使えば、分解を経ずに答へ届く——大きな数を扱う場面で唯一実用になる道筋として、紀元前から同じ手順が使われ続けている。応用情報ではアルゴリズムのトレース問題として出るほか、拡張版が公開鍵暗号の鍵生成に使われる文脈でも触れられる。

具体例

gcd(1071,462)は、1071 mod 462=147、462 mod 147=21、147 mod 21=0と進んで21が答になる。拡張ユークリッドの互除法はここに係数の追跡を加えたもので、RSAの鍵生成でeの逆元となる秘密鍵dを求める計算に使われ、OpenSSLなどの実装が内部で回している。

試験での引っ掛け

引き算を繰り返す版と余りを使う版があり、前者は2数の差が大きいと極端に反復回数が増える点が問われる。最小公倍数を求めるときも注意が必要で、a×b÷gcdは正しいが先に掛けると桁あふれしやすいため、a÷gcd×bの順に計算する。トレース問題では、割られる数と割る数の入れ替えを1回ごとに正しく行えているかが得点を分ける。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 1問の解説で触れられる
  • 分野:テクノロジ系
  • 引き算を繰り返す版と余りを使う版があり、前者は2数の差が大きいと極端に反復回数が増える点が問われる。