codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; happy numbers (define (sum xs) (apply + xs)) (define (square x) (* x x)) (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 (happy? n) (let loop ((n n) (ns '())) (cond ((= n 1) #t) ((member n ns) #f) (else (loop (sum (map square (digits n))) (cons n ns)))))) ; display first eight happy numbers (display "happy numbers:") (let loop ((n 8) (i 1)) (cond ((zero? n) (newline)) ((happy? i) (display " ") (display i) (loop (- n 1) (+ i 1))) (else (loop n (+ i 1)))))
Private
[
?
]
Run code
Submit