如题:
自守数是指一个数的平方的尾数等于该数自身的自然数。
例如:
25^2=625
76^2=5776
9376^2=87909376
请求出200000以内的自守数?
#include<stdio.h>
long long shi(long long x)
{
long long y=1;
for(;x>0;x--)
{
y=y*10;
}
return y;
}
int main()
{
long long k1,num,y;
for(long long x=0;x<=200000;x++)
{
num=0;
k1=x;
y=x*x;
while(k1>0)
{
k1=k1/10;
num++;
}
if(y%shi(num)==x){printf("%lld ",x);}
}
return 0;
}
思路:取平方数除10的原来的数的位数的余数,例如25的平方是625,625%100(2个零是因为25是两位数)
我查了一下,还有更好的思路,我还没研究懂