ひかりの備忘録

Bash でユークリッド互除法

ユークリッド互除法のアルゴリズム

  1. A と B の余り C
  2. B と C の余り D
  3. C と D の余り E

  4. X と Y の余り 0

    となったときの Y の値が最大公約数。

Bash のスクリプト

#!/usr/bin/env bash

function gcd(){
    test $2 -eq 0 && echo $1 || gcd $2 $(($1 % $2))
}

gcd 1071 1029
# 21