题目描述
正整数n若是它平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数。376*376=141376,因此376也是。
输入
一个正整数n。
输出
依次从小到大打印出小于n的所有同构数,每行一个。
样例输入
10
样例输出
1
5
6
#include <stdio.h>
main( )
{ int n;
scanf("%d",&n);
for(int i=1;i<n;i++)
{ //位数有哪些可能呢?个,十,百,千。
if(0<=i&&i<=9)//个位数,即一位数
{ if(i==(i*i)%10)//如何表示这些位数呢?
printf("%d\n",i);
}
if(10<=i&&i<=99)//十位数,即两位数
{ if(i==(i*i)%100)
printf("%d\n",i);
}
if(100<=i&&i<=999)//百位数,即三位数
{ if(i==(i*i)%1000)
printf("%d\n",i);
}
if(1000<=i&&i<=9999)//千位数,即四位数
{ if(i==(i*i)%10000)
printf("%d\n",i);
}
if(i==10000)
{ //当i为10000时,显然不是同构数,故不作判定
}
}
}