题目:
题解:
1.求出每个数的所有约数,判断是否为完全数。
2.循环1- 
,如果能整除即为约数(约数至少两位,i*i = n,所以i的最大值为
)。
            
            
              java
              
              
            
          
              public int getPerfectNumber(int n) {
        int count = 0;
        for (int i = 1; i <= n; i++) {
            if (isPerfectNumber(i)) {
                count++;
            }
        }
        return count;
    }
    private boolean isPerfectNumber(int n) {
        if (n <= 1) {
            return false;
        }
        int sum = 0;
        for (int i = 1; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                sum = sum + i + n/i;
            }
        }
        return sum == 2*n;
    }
        时间复杂度:O(N)