>>643
list<int> が激しく無駄じゃね?
set<int> にして global か static にしたほうがいい気がする.
ただ,>>639 の定義に従うと,1,10,100,1000,...,10^n しか該当しない気がするので
bool IsHappyNumber( int a )
{
while ( a > 1 ) {
if ( a % 10 ) {
break;
}
a /= 10;
}
return ( a == 1 || a == 10 ) ;
}
でいいんじゃないかとおもうが,自信はない.