JavaScript中判斷一個數是否為兩個完全平方數之和


完全平方數

在數學中,如果一個自然數可以表示為另一個自然數的平方,則稱其為完全平方數。

例如,9、16、81、289都是完全平方數。

我們需要編寫一個JavaScript函式,它只接收一個自然數num作為引數。該函式應該確定是否存在兩個這樣的數m和n,使得:

(m * m) + (n * n) = num

如果存在這樣的數,我們的函式應該返回true,否則返回false。

例如:

如果輸入數字是:

const num = 389;

則輸出應該是:

const output = true;

因為389 = (17 * 17) + (10 * 10)

示例

程式碼如下:

 線上演示

const num = 389;
const canSumSquares = (num = 2) => {
   let left = 0, right = Math.floor(Math.sqrt(num));
   while(left <= right){
      if (left * left + right * right === num) {
         return true;
      } else if (left * left + right * right < num) {
         left++;
         } else {
            right--;
      };
   };
   return false;
};
console.log(canSumSquares(num));

輸出

控制檯輸出將是:

true

更新於:2021年3月3日

193 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告