利用 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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.