; multiples of 5

(define (mult5? n)
  (let outer ((n (abs n)) (power5 (list 5)))
    (if (< (* (car power5) 5) n)
        (outer n (cons (* (car power5) 5) power5))
        (let inner ((n n) (power5 power5))
          (if (null? power5)
              (zero? n)
              (if (< n (car power5))
                  (inner n (cdr power5))
                  (inner (- n (car power5)) power5)))))))

(display (mult5? 987)) (newline)
(display (mult5? 985)) (newline)