Tuesday's Solutions -------------------- Exercise 1: (define beautiful-rectangle (lambda (width) (* width (/ (+ (sqrt 5) 1) 2)))) Exercise 2: plan: check numbers starting with 1 to see if their square is n. If the square ever exceeds n, know n is not a square. (define check-squares (lambda (n s) (if (= (* s s) n) s (if (> (* s s) n) #f (check-squares n (+ s 1)))))) (define is-square? (lambda (n) (check-squares n 1))) Exercise 3: plan: use prime? from before (define remainder (lambda (x y) (if (< x y) x (remainder (- x y) y)))) (define divisible? (lambda (x y) (= (remainder x y) 0))) (define smallest-factor (lambda (n f) (if (>= f n) ;No factors larger than n (there's a better bound) #f (if (divisible? n f) f (smallest-factor n (+ f 1)))))) (define prime? (lambda (n) (not (smallest-factor n 2)))) (define nth-prime-bigger-than (lambda (n p) (if (= n 0) p (if (prime? (+ p 1)) (nth-prime-bigger-than (- n 1) (+ p 1)) (nth-prime-bigger-than n (+ p 1)))))) (define nth-prime (lambda (n) (nth-prime-bigger-than n 2)))