SICP exercise 1.21
From Drewiki
Problem
Use the smallest-divisor procedure from the text to find the smallest divisor of each of the following numbers: 199, 1999, 19999.
Solution
This exercise is straightforward. Here's the smallest-divisor procedure (and its dependencies) from the text:
(define (square x) (* x x)) (define (smallest-divisor n) (find-divisor n 2)) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor n (+ test-divisor 1))))) (define (divides? a b) (= (remainder b a) 0))
And here are the requested answers:
(smallest-divisor 199)
Output:
199
(smallest-divisor 1999)
Output:
1999
(smallest-divisor 19999)
Output:
7

