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


bool isHappy (int n)
{
   ints cache;
 
   while (n != 1)
   {
      int sum = 0;
 
      if (cache.contains(n))
         return false;
 
      cache.add(n);
      while (n != 0)
      {
         int digit = n % 10;
         sum += (digit * digit);
         n = (int)(n / 10);
      }
      n = sum;
   }
   return true;
}
 
void test ()
{
   int num = 1;            
   ints happynums;
 
   while (happynums.count() < 8)            
   {
      if (isHappy(num))
         happynums.add(num);
      num++;
   }
   puts("First 8 happy numbers : " + str.newline + happynums);
}