编程论坛
注册
登录
编程论坛
→
C# 论坛
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
Cris
发布于 2011-09-24 22:33, 5986 次点击
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
8 回复
#2
makebest
2011-09-24 23:04
完全平方数A依次是:0,1,4,9,16,...
它们两两之差B值是:1,3,5,7,9...,是连续的奇数,B=2A+1
根据题目可知,有两个完全平方数相差C=68,查出68是哪几个连续奇数的和即可知道答案.
68是偶数,肯定是偶数个奇数之和,那就从D=2开始,
如果是2个奇数,则最小奇数值是C/D-D+1,即33,答案如下
33=2A+1, A=16,
16*16-100=156(答案)
按照4,6,8个奇数都得不出答案
#3
303770957
2011-09-30 17:48
第一组:(x=-99)
-99+100=1=1*1
-99+100+168=169=13*13
第二组:(x=21)
21+100=121=11*11
21+100+168=289=17*17
第三组:(x=261)
261+100=361=19*19
261+100+168=529=23*23
第四组:(x=1581)
1581+100=1681=41*41
1581+100+168=1849=43*43
#4
303770957
2011-09-30 17:57
解决思路:
X+100=N*N
X+100+168=M*M(M,N均为整数,且M>N)
两试相减:
168=(M+N)*(M-N)
故:M=(43,23,17,15,13)其中之一
挨个验证可得结论:
X=-99 or 21 0r 261 or 1581
#5
jeanine123
2011-10-01 10:31
,学习了
#6
向日葵A
2011-10-07 12:23
回复 4楼 303770957
楼主,用代码敲出来不是一般的难啊。。。可以敲出来看看吗?
#7
哦是菜鸟
2011-10-07 14:10
168=(M+N)*(M-N)
for循环一个搞定m用i代替
#8
makebest
2011-10-12 13:00
前面看错题目了, 下面是用javascript实现的代码:
答案是:
-99,1,169
21,121,289
261,361,529
1581,1681,1849
<html>
<head>
<title> New Document </title>
</head>
<body>
<script type="text/javascript">
<!--
for(var i=1;i<168;i+=2)
{
var sum = 0;
var cnt = 0;
var sub = i;
while(sum<168)
{
sum+=sub;
sub+=2;
cnt++;
}
if(sum==168 && cnt%2==0)
{
var x = (i-1)*(i-1)/4-100;
var res = x + "," + (x+100) + "," + (x+100+168);
document.write(res+"<br>");
}
}
//-->
</script>
</body>
</html>
#9
午夜小学徒
2014-07-21 21:01
#include “math.h“
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);
}
}
1