自守数是指一个数的平方的尾数等于该数自身的自然数。例如:252 = 625,762 = 5776,93762 = 87909376。请求出n以内的自守数的个数;
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int in,j,temp1,temp2,count=0;
double temp=1;
cin>>in;
for(int i=0;i!=in;++i)
{
if(i==0 || i==1)
{
++count;
continue;
}
j=i;
while((j/10)>0)//计算被处理的数有几位数
{
++temp;
j/=10;
}
temp1=(int)pow(10,temp);
temp2=i*i-i;
if(temp2%temp1==0)
{
++count;
}
temp=1;
}
cout<<count;
return 0;
}
结果:如输入2000,输出为8