(define (first-divisor n m i)
(cond
[(= i 1) 1]
[else (cond
[(and (= (remainder n i) 0)
(= (remainder m i) 0)) i]
[else (first-divisor n m (- i 1))])]))
(define (gcd-structural n m)
(first-divisor n m (min n m)))
1. まず,n と m の小さい方を変数 i に入れる.
2. i が n と m の両方を割れれば i の値を返し,終了.
3. i の値を1小さくして2へ.
→ n と m は変わらない.i が変化
「i で割り切れるかを調べながら,
i を1減らす」ことを,割り切れる
まで繰り返す
93