请编写一 C 语言程序,该程序要求(输出)1-1000以内的所有同构数。
同构数:对于一个 N 位的自然数,其数的平方值的末尾的 N 位数等于该数。如,5 的平方为 25,25 的末尾 1 位数为5。
25 的平方为 625,625 的末尾 2 位数为 25。
#include "stdio.h"
int main()
{
long a,b;
for(a=1,b=0;a<1000;a++)
{
// a=5,b=25,25/10=2...5
// a=25,b=625,625/100=6...25
b=a*a;
if(b%10==a||b%100==a||b%1000==a)
printf("%d ",a);
}
printf("\n");
}
执行结果