(define (divides? a b) (= (remainder b a) 0)) (define (smallest-divisor n) (define (find-divisor test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor (+ test-divisor 1))))) (find-divisor 2)) ; 1 ]=> (smallest-divisor 199) ; ; ;Value: 199 ; ; 1 ]=> (smallest-divisor 1999) ; ; ;Value: 1999 ; ; 1 ]=> (smallest-divisor 19999) ; ; ;Value: 7