[LeetCode] 507. Perfect Number
作者:互联网
完美数字。题意是给一个正整数数字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 };
标签:Perfect,case,return,数字,28,num,let,507,LeetCode 来源: https://www.cnblogs.com/aaronliu1991/p/11756368.html