fork download
  1. ; muenchhausen numbers
  2.  
  3. (define (sum xs) (apply + xs))
  4.  
  5. (define (digits n . args)
  6. (let ((b (if (null? args) 10 (car args))))
  7. (let loop ((n n) (d '()))
  8. (if (zero? n) d
  9. (loop (quotient n b)
  10. (cons (modulo n b) d))))))
  11.  
  12. (define (f n)
  13. (define (power n)
  14. (vector-ref '#(0 1 4 27 256 3125 46656
  15. 823543 16777216 387420489) n))
  16. (sum (map power (digits n))))
  17.  
  18. (do ((n 0 (+ n 1))) ((= n 4000))
  19. (when (= (f n) n)
  20. (display n) (newline)))
Success #stdin #stdout 0.04s 8120KB
stdin
Standard input is empty
stdout
0
1
3435