Pythonアルゴリズム

Pythonのユークリッド互除法

数の組を除数と余りへ繰り返し置き換えます。

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

数の組を除数と余りへ繰り返し置き換えます。

2つの整数の最大公約数を求めます。

どのような場面で使う?

  • アルゴリズムとデータ構造を理解する。
  • 各ステップと境界ケースを確認する。
  • 実行時間とメモリ使用量を比較する。

サンプルコード

コードを実行 →
main.py
def gcd(first, second):
    while second:
        first, second = second, first % second
    return abs(first)

print(gcd(48, 18))

期待される出力

6

仕組み

余りが0になったときのもう一方が最大公約数です。計算量は対数的です。

値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。

練習問題

入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。

  1. 空入力、1要素、重複値を試す。
  2. 各ステップの状態を表示する。
  3. 別の解法と性能を比較する。
Python IDEで実行 →