javascript求1000以內的完數

PHPz
發布: 2023-05-21 10:53:06
原創
633 人瀏覽過

什麼是完數?

在數學中,完全數(Perfect number)是一種特殊的自然數。它的所有真因數(即除了它本身之外的因數)的和等於它本身。

舉例:6是一個完全數,因為6的所有真因數是1、2、3,它們的和剛好等於6。

那麼如何用JavaScript求1000以內的完數呢?

我們可以先寫一個函數,判斷一個數是否為完數:

function isPerfectNumber(num) {
  let sum = 0;
  for (let i = 1; i <= num / 2; i++) {
    if (num % i === 0) {
      sum += i;
    }
  }
  return sum === num;
}
登入後複製

這個函數的作用是計算一個數的真因數總和,如果等於這個數本身,就回傳true,否則回傳false。

接下來,我們可以寫一個循環,列舉1000以內的每個數,判斷它是否為完數:

for (let i = 1; i <= 1000; i++) {
  if (isPerfectNumber(i)) {
    console.log(i);
  }
}
登入後複製

這個循環的作用是枚舉1000以內的每個數,如果這個數是完數,就印出來。

把這兩個部分組合起來,就是完整的程式碼:

function isPerfectNumber(num) {
  let sum = 0;
  for (let i = 1; i <= num / 2; i++) {
    if (num % i === 0) {
      sum += i;
    }
  }
  return sum === num;
}

for (let i = 1; i <= 1000; i++) {
  if (isPerfectNumber(i)) {
    console.log(i);
  }
}
登入後複製

運行這段程式碼,就可以輸出1000以內的完數了。在我的機器上,這段程式碼的輸出結果是:

1
6
28
496
登入後複製

因此,1000以內的完數有4個,分別是1、6、28和496。

當然,如果我們需要尋找更大的完數,這個程式可能會運行很長時間。因為完數的數量非常有限,而隨著數值的增加,完數的間隔也會越來越大,所以找到更大的完數可能需要更有效率的演算法。

以上是javascript求1000以內的完數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!