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


begin
integer function mod(a,b);
integer a,b;
mod := a-(a/b)*b;
 
integer function sumdgtsq(n);
integer n;
sumdgtsq :=
    if n = 0 then 0
    else mod(n,10)*mod(n,10) + sumdgtsq(n/10);
 
integer function happy(n);
integer n;
begin
    integer i;
    integer array seen[0:200];
    for i := 0 step 1 until 200 do seen[i] := 0;
 
    while seen[n] = 0 do
    begin
        seen[n] := 1;
        n := sumdgtsq(n);
    end;
    happy := if n = 1 then 1 else 0;
end;
 
integer i, n;
i := n := 0;
while n < 8 do
begin
    if happy(i) = 1 then
    begin
        write(i);
        n := n + 1;
    end;
    i := i + 1;
end;
end