Easy

Perfect NumberC++

Full explanation · Time O(sqrt(n)) · Space O(1)

// Time:  O(sqrt(n))
// Space: O(1)

class Solution {
public:
    bool checkPerfectNumber(int num) {
        if (num <= 0) {
            return false;
        }
        int sum = 0;
        for (int i = 1; i * i <= num; ++i) {
            if (num % i == 0) {
                sum += i;
                if (i * i != num) {
                    sum += num / i;
                }
            }
        }
        return sum - num == num;
    }
};