6.题目:求 200000 以内的自守数。要求编写函数 selfhold,判断一个数是否是一个自守数,若是,则返回 1,否则返回 0。
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25 * 25=625 76 * 76=5776 9376 * 9376=87909376。
测试举例
输出样例: 0 1 5 ...
#include <iostream>
using namespace std;
int selfhold(long number);
int main()
{
long number;
for(number=0;number<200000;number++)
{
if(selfhold(number)==1)
{
cout<<number<<endl;
}
}
return 0;
}
int selfhold(long number) /*判断数number是否是一个自守数*/
{
/**********Program**********/
long long int a=number*number;
if(0<=number<10)
{
if(number==a%10)
return 1;
}
if(10<=number<100)
{
if(number==a%100)
return 1;
}
if(100<=number<1000)
{
if(number==a%1000)
return 1;
}
if(1000<=number<10000)
{
if(number==a%10000)
return 1;
}
if(10000<=number<100000)
{
if(number==a%10000)
return 1;
}
if(100000<=number<100000)
{
if(number==a%100000)
return 1;
}
if(100000<=number<2000000)
{
if(number==a%1000000)
return 1;
}
return 0;
/**********Program**********/