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

用javascript编写
2025-06-24 04:57:13
推荐回答(3个)
回答1:

完全平方数有如下:0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529…
首先,须知道完全平方数具有很多特性,详见百度百科链接:
http://baike.baidu.com/link?url=Erf784QruiwXXlkR1Wbv22BiynjNV-J39TZKuFidYXRqJ5FK2X-FGKFv5K_vGb1J7BMgFU2c_p01s1VtOXyj_0w3REo2FZ6gAp_3Jf84UTuwXZjJtD8DukSlL_7Q3kmGiPnKAMqEXnyZPQcrFlN7Ia
解:设此自然数为x,依题意可得
x+100=m2 ⑴
x+100+168=n2 ⑵
(m,n为自然数)
⑵-⑴可得 :n^2-m^2=168
因为n+m>n-m
则(n+m)(n-m)=n^2+mn-mn-m^2=n^2-m^2=168
(n+m)(n-m)=168=4*42=8*21=24*7
则有三组方程式:
一:n+m=42; n-m=4
二:n+m=21; n-m=8
三:n+m=24; n-m=7
解之,n,m均为自然数,不为小数,只有方程式一成立,得n=23。代入⑵得。故所求的自然数是261。
希望可以帮到你

回答2:

function getX(nA, nB) {
if (!(Number.isSafeInteger(nA) && Number.isSafeInteger(nB))) {
throw Error('The both parameters must be safe integers.');
}
if (nA === nB) {
throw Error('The two parameters cannot be equal.');
}
if (nA < nB) {
[nA, nB] = [nB, nA];
}
var nL = nA - nB;
var nSqrtL = Math.sqrt(nL);
var nFactor = 1;
var nSum;
var aX = [];
while (nFactor <= nSqrtL) {
if (nL % nFactor === 0) {
nSum = nFactor + nL / nFactor;
if ((nSum & 1) === 0) {
aX.push((nSum / 2) ** 2 - nA);
}
}
nFactor++;
}
return aX;
}
console.log(getX(100, 168));
//这是个通用函数getX ,两个参数可为任意安全整数,但不能相等,因为相等的话X是无穷的,返回值为一包含所有符合条件的值的数组,如果无解,那么返回空数组。

回答3:

21 100+21=11X11,21+100+168=17X17