Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một số n. Hàm phải tìm tất cả các cặp số x và y sao cho:
x^2 - 4y^2 = n.
Và trả về một mảng chứa tất cả các cặp đó.
Ví dụ
Dưới đây là mã:
const num = 90005;
const findSolution = (num = 1) => {
const res = [];
let a, b;
for(let a = 1; a <= Math.sqrt(num); a++){
if(Number.isInteger(b = num/a)){
if(Number.isInteger(x = (b+a)/2)){
if(Number.isInteger(y = (b-a)/4)){
res.push([x, y]);
};
};
};
};
return res;
};
console.log(findSolution(num));
Kết quả
[ [ 45003, 22501 ], [ 9003, 4499 ], [ 981, 467 ], [ 309, 37 ] ]