什麼是完數?
在數學中,完全數(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中文網其他相關文章!