Implement up to 2.41
This commit is contained in:
@@ -1,21 +1,4 @@
|
||||
; utils
|
||||
(define (inc n) (+ n 1))
|
||||
(define (cube n) (* n n n))
|
||||
(define (square n) (* n n))
|
||||
(define (identity n) n)
|
||||
(define (even? n) (= (remainder n 2) 0))
|
||||
(define (odd? n) (= (remainder n 2) 1))
|
||||
(define (divides? a b) (= (remainder b a) 0))
|
||||
(define (gcd a b) (if (= b 0) a (gcd b (remainder a b))))
|
||||
|
||||
; copied prime? from 1.21
|
||||
(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 (smallest-divisor n)
|
||||
(find-divisor n 2))
|
||||
(define (prime? n) (if (= n 1) #f (= n (smallest-divisor n))))
|
||||
(load "util.scm")
|
||||
|
||||
(display "ex-1.29") (newline)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user