From f75029f32bcdac66a28dbf16bef141ae408682cf Mon Sep 17 00:00:00 2001 From: NaiJi Date: Wed, 26 Aug 2020 11:32:16 +0300 Subject: [PATCH] Add 1.21 --- sicp-ex-1.21.rkt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 sicp-ex-1.21.rkt diff --git a/sicp-ex-1.21.rkt b/sicp-ex-1.21.rkt new file mode 100644 index 0000000..18e5477 --- /dev/null +++ b/sicp-ex-1.21.rkt @@ -0,0 +1,17 @@ +(define (square n) + (* n n)) + +(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)) + +(smallest-divisor 199) +(smallest-divisor 1999) +(smallest-divisor 19999)