利用 JavaScript 求解丢番图方程的所有解法


问题

我们要求编写一个 JavaScript 函数,该函数接受一个数字 n。我们的函数应查找所有满足以下条件的数字 x 和 y :

x^2 - 4y^2 = n.

并且它应返回所有此类对的数组。

示例

代码如下所示:

 在线演示

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));

输出

[ [ 45003, 22501 ], [ 9003, 4499 ], [ 981, 467 ], [ 309, 37 ] ]

更新于:19-Apr-2021

227 次浏览

开启您的职业生涯

完成课程获得认证

开始
广告