
/*Case 9
自守数
某个数的平方等于该数本身
求0~10000的所以自守数*/
#include <math.h>
int main() {
int i,a, k, m;
for ( i = 1; i <= 10000; i++)//在1-10000内依次检验
{
a = i;
a *= a; //求出i的平方
k = log10(i) + 1; //求出i的位数k
for ( m = 1; k ; k--) //看不明白
{
m *= 10; //看不明白
}
a %= m; //通过取余找出尾数
if (a==i) //判断i的平方的尾数是否等于i
{
printf("%d\n",i);
}
}
return 0;
}