HappyNumber
650 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/12(土) 02:00:19
これ面白いな。
最終的には4を含むループにはまるか、1で終わるかのどっちかなんだな。
証明もできたがはじめて知ったよ。
#include<iostream>
bool IsHappyNumber( int n )
{
while( 1 )
{
int sum = 0;
while( n )
{
int i = n % 10;
sum += i * i;
n /= 10;
}
n = sum;
if( n == 1 ) return true;
if( n == 4 ) return false;
}
}
int main( void )
{
int a, b;
std::cin >> a;
std::cin >> b;
if( a > 0 )
{
for( int i = a; i <= b; ++i )
{
if( IsHappyNumber(i) )
{
std::cout << i << std::endl;
}
}
}
return 0;
}
最終更新:2008年01月12日 14:50