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


go =>
   println(happy_len(8)).
 
happy(N) => 
   S = [N],
   Happy = 1,
   while (Happy == 1, N > 1)
     N := sum([to_integer(I)**2 : I in N.to_string()]),
     if member(N,S) then
       Happy := 0
     else
        S := S ++ [N]
     end
   end,
   Happy == 1.
 
happy_len(Limit) = S => 
   S = [],
   N = 1,
   while (S.length < Limit) 
      if happy(N) then
         S := S ++ [N]
      end,
      N := N + 1
   end.