注册 登录
编程论坛 C# 论坛

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

Cris 发布于 2011-09-24 22:33, 5986 次点击
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
8 回复
#2
makebest2011-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
3037709572011-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
3037709572011-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
jeanine1232011-10-01 10:31
,学习了
#6
向日葵A2011-10-07 12:23
回复 4楼 303770957
楼主,用代码敲出来不是一般的难啊。。。可以敲出来看看吗?
#7
哦是菜鸟2011-10-07 14:10
168=(M+N)*(M-N)
for循环一个搞定m用i代替
#8
makebest2011-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