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') $)