Happy? := proc( n :: posint ) local a, b; a, b := n, SumSqDigits( n ); while a <> b do a := SumSqDigits( a ); b := (SumSqDigits@@2)( b ) end do; evalb( a = 1 ) end proc: