题目

image.png

题解

  1. class Solution {
  2. public boolean checkPerfectNumber(int num) {
  3. if(num == 1) return false;
  4. int sum = 1;
  5. /*
  6. 28
  7. 1, 2 , 4 7 14
  8. 36
  9. 1, 2,3 ,4 ,6, 9,12,18,
  10. 1. 找到 前一半的数字, 拿到后一半的数字
  11. 2. sum
  12. */
  13. for(int i = 2; i <= Math.sqrt(num); i++){
  14. if(num % i == 0){
  15. sum += i;
  16. if(i != num / i)
  17. sum += num / i;
  18. }
  19. }
  20. return sum == num;
  21. }
  22. }