; 115132219018763992565095597973971522401
(define (digits n . args)
(let ((b (if (null? args) 10 (car args))))
(let loop ((n n) (d '()))
(if (zero? n) d
(loop (quotient n b)
(cons (modulo n b) d))))))
(define (sum xs) (apply + xs))
(define (pow n) (lambda (x) (expt x n)))
(do ((n 1 (+ n 1))) (#f)
(let ((ds (digits n)))
(when (= (sum (map (pow (length ds)) ds)) n)
(display n) (newline))))