同构数-c语言入门(5)

找出2~999之间所有的的同构数

首先解释一下同构数,同构数是指自己本身与自己的平方右侧的数一样。例如6的平方36,6和36的最右侧一位6一样,所以6是同构数;再例如25的平方625,25与625的右侧25一样,所以25也是同构数。
我们只需要把每一个数的与他平方的右侧比较一下即可。由于只需求出2~999之间的同构数,那么平方后的数的右侧最多只需确定三位,最少确定一位。
代码如下:

#include
int main()
{
 int x, S, a, b;
 scanf("%d%d", &a, &b);
 for (x = a; x <= b; x++)
 {
  S = x * x;
  if (S % 1000 == x)
   printf("%d\n", x);
  else
   if (S % 100 == x)
    printf("%d\n", x);
   else
    if (S % 10 == x)
     printf("%d\n", x);
 }
 return 0;
}

输入2 999,输出结果如下:
同构数-c语言入门(5)_第1张图片

你可能感兴趣的:(c语言)