From Wikipedia, the free encyclopedia:

 A happy number is defined by the following process:
 Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals   1   (where it will stay),   or it loops endlessly in a cycle which does not include   1.   


 Those numbers for which this process end in   1   are       happy   numbers,   
 while   those numbers   that   do   not   end in   1   are   unhappy   numbers. 


Task

Find and print the first   8   happy numbers.

Display an example of your output here on this page.



See also

   The OEIS entry:   The     happy numbers:   A007770
   The OEIS entry:   The unhappy numbers;   A031177


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