g1301_1400.s1390_four_divisors.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 g1301_1400.s1390_four_divisors;
// #Medium #Array #Math #2022_03_17_Time_13_ms_(97.25%)_Space_42.3_MB_(95.60%)
/**
* 1390 - Four Divisors\.
*
* Medium
*
* Given an integer array `nums`, return _the sum of divisors of the integers in that array that have exactly four divisors_. If there is no such integer in the array, return `0`.
*
* **Example 1:**
*
* **Input:** nums = [21,4,7]
*
* **Output:** 32
*
* **Explanation:**
*
* 21 has 4 divisors: 1, 3, 7, 21
*
* 4 has 3 divisors: 1, 2, 4
*
* 7 has 2 divisors: 1, 7
*
* The answer is the sum of divisors of 21 only.
*
* **Example 2:**
*
* **Input:** nums = [21,21]
*
* **Output:** 64
*
* **Example 3:**
*
* **Input:** nums = [1,2,3,4,5]
*
* **Output:** 0
*
* **Constraints:**
*
* * 1 <= nums.length <= 104
* * 1 <= nums[i] <= 105
**/
public class Solution {
public int sumFourDivisors(int[] nums) {
int sum = 0;
for (int num : nums) {
int sqrt = (int) Math.sqrt(num);
if (sqrt * sqrt == num) {
continue;
}
int tmpSum = num + 1;
int count = 0;
for (int i = 2; i <= sqrt; i++) {
if (num % i == 0) {
count++;
tmpSum += (i + num / i);
}
if (count > 1) {
break;
}
}
if (count == 1) {
sum += tmpSum;
}
}
return sum;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy