
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是
#include"math.h"#include"stdio.h"#include"conio.h"main(){longinti,x,y,for(i=1;i<10000...
#include "math.h"
#include "stdio.h"
#include "conio.h"
main()
{
long int i,x,y,
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);
}
system("pause");//暂停
return 0;
}
这个是我搜到的答案试了试,在sqrt下面有红线,没法运行,我把long int换成double可以运行了,但是结果满屏幕的000000
有知道这是怎么回事的么?求解,感谢大神了!!1 展开
#include "stdio.h"
#include "conio.h"
main()
{
long int i,x,y,
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);
}
system("pause");//暂停
return 0;
}
这个是我搜到的答案试了试,在sqrt下面有红线,没法运行,我把long int换成double可以运行了,但是结果满屏幕的000000
有知道这是怎么回事的么?求解,感谢大神了!!1 展开
11个回答
2019-01-10 · 知道合伙人教育行家
关注

展开全部
设这个数是 n,
n+100 = a^2,
a^2+168=b^2,
所以 (b+a)(b-a)=168=84*2 = 42*4 = 28*6 = 14*12,
由 b+a=84,b-a=2 解得 a=(84-2)/2=41,所以 n=41^2-100 = 1581,
由 b+a=42,b-a=4 解得 a=(42-4)/2=19,所以 n=19^2-100=261,
由 b+a=28,b-a=6 解得 a=(28-6)/2=11,所以 n=11^2-100 = 21 ,
由 b+a=14,b-a=12 解得 a=(14-12)/2=1,所以 n=1^2-100 = -99 ,
所以,所求的整数是 -99、21、261、1581 。
n+100 = a^2,
a^2+168=b^2,
所以 (b+a)(b-a)=168=84*2 = 42*4 = 28*6 = 14*12,
由 b+a=84,b-a=2 解得 a=(84-2)/2=41,所以 n=41^2-100 = 1581,
由 b+a=42,b-a=4 解得 a=(42-4)/2=19,所以 n=19^2-100=261,
由 b+a=28,b-a=6 解得 a=(28-6)/2=11,所以 n=11^2-100 = 21 ,
由 b+a=14,b-a=12 解得 a=(14-12)/2=1,所以 n=1^2-100 = -99 ,
所以,所求的整数是 -99、21、261、1581 。
展开全部
设加上100以后是a²,加上168以后是b²
a,b为正整数且b>a
b²-a²=168-100=68
(b-a)(b+a)=68
b-a与b+a奇偶性相同
68=2×34
b-a=2
b+a=34
a=16,b=18
这个数是:16²-100=156
a,b为正整数且b>a
b²-a²=168-100=68
(b-a)(b+a)=68
b-a与b+a奇偶性相同
68=2×34
b-a=2
b+a=34
a=16,b=18
这个数是:16²-100=156
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2020-02-15
展开全部
计算方法是:
168=1×168=2×84=3×56=4×42=6×28=7×24=8×21=12×14,
因为两个平方数数的差或和都是奇数或者都是偶数,
所以这两个数的差是2,和是84,(84-2)÷2=41,41×41-100=1581,这个数可以是1581;
或者差是4,和是42,(42-4)÷2=19,19×19-100=261,这个数可以是261;
或者差是6,和是28,(28-6)÷2=11,11×11-100=21,这个数可以是21;
或者差是12,和是14,(14-12)÷2=1,1×1-100=-99,这个数可以是-99;
综上,这个数可以是-99,21,261,1581。
168=1×168=2×84=3×56=4×42=6×28=7×24=8×21=12×14,
因为两个平方数数的差或和都是奇数或者都是偶数,
所以这两个数的差是2,和是84,(84-2)÷2=41,41×41-100=1581,这个数可以是1581;
或者差是4,和是42,(42-4)÷2=19,19×19-100=261,这个数可以是261;
或者差是6,和是28,(28-6)÷2=11,11×11-100=21,这个数可以是21;
或者差是12,和是14,(14-12)÷2=1,1×1-100=-99,这个数可以是-99;
综上,这个数可以是-99,21,261,1581。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;;i++) //如果想求出几个数,最好加上多大范围内跳出循环 i<=XXXXX
{
if(((int)sqrt(i+100.0)*(int)sqrt(i+100.0)==(i+100))&&((int)sqrt(i+268.0)*(int)sqrt(i+268.0)==(i+268))) //不知道是加 168 还是 268 与提问的不一样,sqrt 函数参数是浮点型,数字后面加个 .0
{ printf("%d\n“,i); break;} // 少写个引号,如果只想求一个数,要加break 跳出循环,否则%d 后面加个空格或者 \n ,不然几个数挤在一起输出没有分隔
}
{
if(((int)sqrt(i+100.0)*(int)sqrt(i+100.0)==(i+100))&&((int)sqrt(i+268.0)*(int)sqrt(i+268.0)==(i+268))) //不知道是加 168 还是 268 与提问的不一样,sqrt 函数参数是浮点型,数字后面加个 .0
{ printf("%d\n“,i); break;} // 少写个引号,如果只想求一个数,要加break 跳出循环,否则%d 后面加个空格或者 \n ,不然几个数挤在一起输出没有分隔
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询