思路分析

我们先看什么是同构数:

如果一个数的平方数的尾部是他本身,那么这个数就是同构数。

比如:5的平方是25,25的尾部是5,所以5是同构数。

6的平方是36,36的尾部是6,所以6是同构数。

25的平方是625,625的尾部是25,所以25是同构数。

知识补充:

如何求出一个两位数的个位数(尾部)是几?这个数对10求模就可以求出个位数是几。

如何求出一个三位数的十位数个位数(尾部)是多少?这个数对100求模就可以求出十位数个位数。

例子:25%10=5,5就是25个位上的数。

625%100=25,25就是十位和个位上的数。

我们以求1到1000的同构数为例进行案例讲解。

案例代码如下

#include void main(){int i,j;//定义变量for(i=1;i<1000;i++){if((i*i)%10==i||(i*i)%100==i||(i*i)%1000==i){printf("%d\t",i);//分别求1到10,10到100,100到1000的同构数}}}

案例代码如下