; three homework problems

(define (f a b c)
  (if (and (<= a b) (<= a c))
      (+ (* b b) (* c c))
      (f b c a)))

(display (f 1 2 3)) (newline)
(display (f 2 1 3)) (newline)
(display (f 3 1 2)) (newline)
(display (f 3 3 3)) (newline)

(define (palin? n)
  (let loop ((m n) (r 0))
    (if (zero? m)
        (= r n)
        (loop (quotient m 10)
              (+ (* 10 r) (remainder m 10))))))

(display (palin? 12345)) (newline)
(display (palin? 12321)) (newline)

(define (tens n)
  (let loop ((n n) (z 0))
    (if (zero? n) z
      (let ((n (quotient n 5)))
        (loop n (+ z n))))))

(display (tens 973)) (newline)