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


n = 1
found = 0
 
While found < 8
    If IsHappy(n) 
          found += 1
          see string(found) + " : " + string(n) + nl
    ok
    n += 1
End
 
Func IsHappy n 
    cache = []
    While n != 1
        Add(cache,n)
        t = 0
        strn = string(n)
        for e in strn
            t += pow(number(e),2)
        next
        n = t
        If find(cache,n) Return False ok
    End
    Return True
 