完美数字。题意是给一个正整数数字N,问这个数字是否是一个完美数字。完美数字N的定义是N可以是其所有大于0的除数的加和。例子
Input: 28 Output: True Explanation: 28 = 1 + 2 + 4 + 7 + 14
因为涉及到除数,所以需要遍历的范围一定不会大于sqrt(N)。
1 /** 2 * @param {number} num 3 * @return {boolean} 4 */ 5 var checkPerfectNumber = function(num) { 6 // corner case 7 if (num === 1) { 8 return false; 9 } 10 11 // normal case 12 let res = 1; 13 for (let i = 2; i <= Math.sqrt(num); i++) { 14 if (num % i === 0) { 15 res += i + Math.floor(num / i); 16 } 17 } 18 return res === num; 19 };