问题描述:
如果一个数n是一个自守数,它必须满足如下条件:
1. 如果n有k位数构成,那么n的平方的末尾k位数必须和n相等
例如:
25是一个自守数,因为
25 * 25 = 625,并且25等于625后面两位25
输出【1,10000】范围内的自守数。
参考代码:
#include <stdio.h>
int main()
{
int i, num, temp, factor;
for (i = 1; i <= 10000; i++)
{
temp = i;
num = i * i;
factor = 1;
while (temp)
{
factor *= 10;
temp /= 10;
}
if (i == num % factor)
printf("%d\n", i);
}
return 0;
}
运行结果: