All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0501_0600.s0507_perfect_number.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0501_0600.s0507_perfect_number;

// #Easy #Math #2022_07_24_Time_2_ms_(80.46%)_Space_41.5_MB_(9.33%)

/**
 * 507 - Perfect Number\.
 *
 * Easy
 *
 * A [**perfect number** ](https://en.wikipedia.org/wiki/Perfect_number) is a **positive integer** that is equal to the sum of its **positive divisors** , excluding the number itself. A **divisor** of an integer `x` is an integer that can divide `x` evenly.
 *
 * Given an integer `n`, return `true` _if_ `n` _is a perfect number, otherwise return_ `false`.
 *
 * **Example 1:**
 *
 * **Input:** num = 28
 *
 * **Output:** true
 *
 * **Explanation:** 28 = 1 + 2 + 4 + 7 + 14 1, 2, 4, 7, and 14 are all divisors of 28.
 *
 * **Example 2:**
 *
 * **Input:** num = 7
 *
 * **Output:** false
 *
 * **Constraints:**
 *
 * *   1 <= num <= 108
**/
public class Solution {
    public boolean checkPerfectNumber(int num) {
        int s = 1;
        for (int sq = (int) Math.sqrt(num); sq > 1; sq--) {
            if (num % sq == 0) {
                s += sq + (num / sq);
            }
        }
        return num != 1 && s == num;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy