25 lines
455 B
Text
25 lines
455 B
Text
get "libhdr"
|
|
|
|
let sumdigitsq(n) =
|
|
n=0 -> 0, (n rem 10)*(n rem 10)+sumdigitsq(n/10)
|
|
|
|
let happy(n) = valof
|
|
$( let seen = vec 255
|
|
for i = 0 to 255 do i!seen := false
|
|
$( n!seen := true
|
|
n := sumdigitsq(n)
|
|
$) repeatuntil n!seen
|
|
resultis 1!seen
|
|
$)
|
|
|
|
let start() be
|
|
$( let n, i = 0, 0
|
|
while n < 8 do
|
|
$( if happy(i) do
|
|
$( n := n + 1
|
|
writef("%N ",i)
|
|
$)
|
|
i := i + 1
|
|
$)
|
|
wrch('*N')
|
|
$)
|