正整数n若是它平方数的尾数,则称n为同构数。例如:6是平方数为36的尾数,76是其平方数5776的尾数,因此6,76都是同构数,编写一个程序,找出1000以内的同构数。
我们可以通过穷举法,在1-1000中进行搜索。然后一个问题就是求余的问题,当进行判断的数为1一位的时候,我们可以很容易的进行判断,然后是2,3为数的时候,我们需要对其为100,1000求余。然后判断值是否相等,即可判断,该数是否为同构数。代码如下:
- #include <stdio.h>
-
-
int func(int n)
-
{
-
int j;
-
for(j=10; j<1000; j=j*10){
-
if(n/j == 0)
-
break;
-
}
-
-
if((n*n)%j == n)
-
return 1;
-
else
-
return 0;
-
}
-
-
-
void gettongguo()
-
{
-
int i;
-
for(i=1; i<=1000; i++)
-
if(func(i))
-
printf("%d ",i);
-
}
-
-
int main(int argc, char *argv[])
-
{
-
printf("the tongguoshu bellow 1000 are\n");
-
gettongguo();
-
printf("\n");
-
-
return 0;
-
}
对程序进行编译,执行:
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.7.c
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
the tongguoshu bellow 1000 are
1 5 6 25 76 376 625
阅读(5338) | 评论(0) | 转发(0) |