一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?
在 10 万以内判断(可以是比100000大的数字),先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后的结果满足如下条件,即是结果。
遍历10万以内的数字,将每个数字分别加上 100 和 168后开平方,最后计算加上100 和 168 后的两数的平方,如果一个数的平方根的平方等于该数,这说明此数是完全平方数。
可以使用 math.h
库中的 sqrt函数
来进行开方计算会更方便。
#include <stdio.h>
#include <math.h>
int main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{
x=sqrt(i+100); /*x 为加上 100 后开方后的结果*/
y=sqrt(i+268); /*y 为再加上 168 后开方后的结果*/
if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
return 0;
}