; recursion and iteration
(define (gcd-r m n) ; recursive
(if (zero? n) m
(gcd-r n (modulo m n))))
(define (gcd-i m n) ; iterative
(while (positive? n)
(let ((t (modulo m n)))
(set! m n)
(set! n t)))
m)
(display (gcd-r 35 28)) (newline)
(display (gcd-i 35 28)) (newline)
(do ((m 1 (+ m 1))) ((= m 100))
(do ((n 1 (+ n 1))) ((= n 100))
(when (not (= (gcd-r m n) (gcd-i m n)))
(display m) (display " ") (display n) (newline))))