📐 ユークリッドの互除法ビジュアライザー

仕組みのイメージ

入力した2つの数を、長方形の長辺と短辺の長さだと考えます。つまり、長辺(a)と短辺(b)は、最大公約数を求めたい2つの数です。
この長方形を、短辺を一辺とする正方形でできるだけ敷き詰めるように分割し、余った長方形にも同じ操作を繰り返します。 こうして最後にぴったり埋め尽くせる正方形の一辺が、その2つの数の最大公約数(GCD)です。

q = ⌊a / b⌋ は「a を b で割った商」、r = a mod b は「その余り」です。
つまり a = b × q + r となり、図では q 個の正方形を切り出し、r が残りの長さ を表します。
準備完了
数値を入力して「開始」を押してください。

疑似コード

いま実行している処理をハイライトします。

  1. 1a と b を入力する
  2. 2a < b なら入れ替える
  3. 3while b ≠ 0:
  4. 4q = ⌊a / b⌋, r = a mod b
  5. 5a = b, b = r
  6. 6b = 0 になったら終了。そのときの a が GCD
現在の値
a -
b -

計算プロセス