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


 
' ************************
' MAIN
' ************************
 
PROC _PRINT_HAPPY(20)
END
 
' ************************
' END MAIN
' ************************
 
' ************************
' SUBS & FUNCTIONS
' ************************
 
' --------------------
_is_happy PARAM(1)
' --------------------
LOCAL (5)
  f@ = 100
  c@ = a@
  b@ = 0
 
  DO WHILE b@ < f@
    e@ = 0
 
    DO WHILE c@
      d@ = c@ % 10
      c@ = c@ / 10
      e@ = e@ + (d@ * d@)
    LOOP
 
  UNTIL e@ = 1
    c@ = e@
    b@ = b@ + 1
  LOOP
 
RETURN(b@ < f@)
 
' --------------------
_PRINT_HAPPY PARAM(1)
' --------------------
LOCAL (2)
  b@ = 1
  c@ = 0
 
  DO
 
    IF FUNC (_is_happy(b@)) THEN
       c@ = c@ + 1
       PRINT b@
    ENDIF
 
    b@ = b@ + 1
    UNTIL c@ + 1 > a@
  LOOP
 
RETURN
 
' ************************
' END SUBS & FUNCTIONS
' ************************
 