#23

ユークリッドの互除法(最大公約数)

「大きい方を余りで置き換える」を繰り返して最大公約数を求めます。

解説

最大公約数(GCD)は、2つの整数を割り切れる最大の数です。ユークリッドの互除法を使うと一気に速くなります。約2300年前から知られる、最も古いアルゴリズムの一つです。 原理は「a と b の最大公約数は、b と (a を b で割った余り) の最大公約数に等しい」というものです。 手順はこれだけです。 1. a を b で割った余り r を求める。 2. a に b を、b に r を代入する。 3. b が 0 になったら、そのときの a が答え。

書き方

ユークリッドの互除法: gcd(a, b) = gcd(b, a % b)。
・while b != 0: a, b = b, a % b(余りで置き換え)。
・b が 0 になったときの a が最大公約数。
・for a, b in pairs: でタプルのリストを分解して反復。

書いて動かす

この回の課題

2つの整数の最大公約数を、余りで置き換える互除法(while)で求めて表示してみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。