g0501_0600.s0507_perfect_number.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
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