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


import extensions;
import system'collections;
import system'routines;
 
isHappy(int n)
{
    auto cache := new List<int>(5);
    int sum := 0;
    int num := n;
    while (num != 1)
    {
        if (cache.indexOfElement:num != -1)
        {
            ^ false
        };
        cache.append(num);
        while (num != 0)
        {
            int digit := num.mod:10;
            sum += (digit*digit);
            num /= 10
        };
        num := sum;
        sum := 0
    };
 
    ^ true
}
 
public program()
{
    auto happynums  := new List<int>(8);
    int num := 1;
    while (happynums.Length < 8)
    {
        if (isHappy(num))
        {
            happynums.append(num)
        };
 
        num += 1
    };
    console.printLine("First 8 happy numbers: ", happynums.asEnumerable())
}