; largest possible remainder

(define (lpr n d)
  (let loop ((d d) (m 0))
    (let ((r (remainder n d)))
      (if (< d m) m
        (loop (- d 1) (max m r))))))

(display (lpr 20 10)) (newline)