; 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))))
OyByZWN1cnNpb24gYW5kIGl0ZXJhdGlvbgoKKGRlZmluZSAoZ2NkLXIgbSBuKSA7IHJlY3Vyc2l2ZQogIChpZiAoemVybz8gbikgbQogICAgKGdjZC1yIG4gKG1vZHVsbyBtIG4pKSkpCgooZGVmaW5lIChnY2QtaSBtIG4pIDsgaXRlcmF0aXZlCiAgKHdoaWxlIChwb3NpdGl2ZT8gbikKICAgIChsZXQgKCh0IChtb2R1bG8gbSBuKSkpCiAgICAgIChzZXQhIG0gbikKICAgICAgKHNldCEgbiB0KSkpCiAgbSkKCihkaXNwbGF5IChnY2QtciAzNSAyOCkpIChuZXdsaW5lKQooZGlzcGxheSAoZ2NkLWkgMzUgMjgpKSAobmV3bGluZSkKCihkbyAoKG0gMSAoKyBtIDEpKSkgKCg9IG0gMTAwKSkKICAoZG8gKChuIDEgKCsgbiAxKSkpICgoPSBuIDEwMCkpCiAgICAod2hlbiAobm90ICg9IChnY2QtciBtIG4pIChnY2QtaSBtIG4pKSkKICAgICAgKGRpc3BsYXkgbSkgKGRpc3BsYXkgIiAiKSAoZGlzcGxheSBuKSAobmV3bGluZSkpKSk=