程序算法精题–JS版
- 一个整数, 它加上100后是一个完全平方数, 再加上168又是一个完全平方式,请问该数是多少?
分析
假设该数为x
- x + 100 = n^2; x + 100 + 168 = m^2;
- m^2 - n^2 = (m + n) * (m - n) = 168;
- 设 i = m + n; j = m - n; i * j = 168; // i, j => 至少有一个是偶数
- m = (i + j) / 2; n = (i - j) / 2; // i, j 都为偶数或奇数
- 从3, 4 推导可知 i, j 都大于2
- 由于 i * j = 168; j >= 2; 则 1 < i < 168 / 2 +1
源码
let i, j, m, n, x;
for (i = 1; i < 168 / 2 +1; i++) {
// 确定i是整数
if (168 % i == 0) {
j = 168 / i;
if (i > j && (i + j)%2 == 0 && (i - j)%2 == 0) {
m = (i + j) / 2;
n = (i - j) /2;
x = n * n - 100;
console.log(x);
// console.log(n);
// console.log(m);
}
}
}
console