;;;;;;;;;;;;;; ;Problem Set 3 ;Grant Oladipo ;January 19, 2006 ;INDIVIDUAL PROBLEMS ;;;;;;;;;; ;Problem 1 ;;;;;;;;;; (display "\nProblem 1\n\n") (define with-tax (lambda (sub-total) (* 1.05 sub-total))) (with-tax 5.00) (with-tax 259.99) ;;;;;;;;;; ;Problem 2 ;;;;;;;;;; (display "\nProblem 2\n\n") (define num-digits (lambda (number) (if (= 0 number) 0 (+ 1 (num-digits (quotient number 10)))))) (num-digits 1) (num-digits 142) ;;;;;;;;;; ;Problem 3 ;;;;;;;;;; (display "\nProblem 3\n\n") (define add-digit (lambda (number digit) (+ (* number 10) digit))) (add-digit 32 4) (add-digit 1944 7) ;REASONABLE PROBLEMS ;;;;;;;;;; ;Problem 1 ;;;;;;;;;; (display "\nProblem 1\n\n") (define remainder (lambda (dividend divisor) (if (> divisor dividend) dividend (remainder (- dividend divisor) divisor)))) (define divisible? (lambda (dividend divisor) (if (> (remainder dividend divisor) 0) #f #t))) (define divisible? (lambda (dividend divisor) (if (< dividend 1) (= dividend 0) (divisible? (- dividend divisor) divisor)))) (divisible? 6 3) (divisible? 37 4) ;;;;;;;;;; ;Problem 2 ;;;;;;;;;; (display "\nProblem 2\n\n") (define inc (lambda (x) (+ 1 x))) (define dec (lambda (x) (- x 1))) (define slow-add (lambda (addend1 addend2) (if (= addend1 0) addend2 (slow-add (dec addend1) (inc addend2))))) (slow-add 5 3) (slow-add 19 7) ;STICKY PROBLEMS ;;;;;;;;;; ;Problem 1 ;;;;;;;;;; (display "\nProblem 1\n\n") (define smallest-factor (lambda (number limit) (if (divisible? number limit) (if (> number limit) limit #f) (smallest-factor number (inc limit))))) (smallest-factor 8 3) (smallest-factor 96 94) ;;;;;;;;;; ;Problem 2 ;;;;;;;;;; (display "\nProblem 2\n\n") (define prime? (lambda (number) (if (smallest-factor number 2) #f #t))) (prime? 3) (prime? 13) (prime? 12)