/******************************************************************
*  源程序名：ModelTask4_4_2.cpp                  　　　　　　　　 *
*  功能：输出1至100之间的全部同构数。　　　　　　　　　　         *
******************************************************************/
#include <iostream.h>
void main()
{
	int n,m,square;//分别存放原数、原数副本、平方数
	int flag;//标识变量,约定flag=1与该数是同构数等价
	for (n=1;n<=100;n++)
	{
		flag=1;//对每个数都先假设其是同构数
		square=n*n;
		m=n;//还要输出同构数，所以操作原数的副本
		while(m!=0)//m一定小于等于square
		{
			if (m%10!=square%10)//取当前最低位，并进行判断
			{
				flag=0;//最低位不等，证明不是同构数，改变flag的值
				break;//已有一位不等，不必再往下判断，跳出循环
			}
			m/=10;//去掉判断过的最低位
			square/=10;
		}
		if (flag==1)//flag值仍为1，证明是同构数
			cout<<n<<'\t';
	}
	cout<<endl;
}
