找出2~999之间所有的的同构数
首先解释一下同构数,同构数是指自己本身与自己的平方右侧的数一样。例如6的平方36,6和36的最右侧一位6一样,所以6是同构数;再例如25的平方625,25与625的右侧25一样,所以25也是同构数。
我们只需要把每一个数的与他平方的右侧比较一下即可。由于只需求出2~999之间的同构数,那么平方后的数的右侧最多只需确定三位,最少确定一位。
代码如下:
#include<stdio.h>
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);elseif (S % 100 == x)printf("%d\n", x);elseif (S % 10 == x)printf("%d\n", x);}return 0;
}
输入2 999,输出结果如下: