; egyptian fractions
(define (egypt n d)
(let loop ((n n) (d d) (xs (list)))
(if (= n 1) (reverse (cons d xs))
(let* ((x (ceiling (/ d n))) (y (- (/ n d) (/ x)))
(n (numerator y)) (d (denominator y)))
(loop n d (cons x xs))))))
(display (egypt 5 6)) (newline)
(display (egypt 7 15)) (newline)
(display (egypt 5 121)) (newline)