SICP問題1.21

今回は素数の問題

ひたすら除数を見つける関数

(define (smallest-divisor n)
  (find-divisor n 2))

(define (find-divisor n div)
  (cond ((> (* div div ) n) n)
	((isdivides div n) div)
	(else (find-divisor n (+ div 1)))))

(define (isdivides a b)
  (= (remainder b a) 0))

(define (square n)
  (* n n))

を使って199,1999,19999
の最小除数を求める。

答えは199,199,7