โ† All problems

1390. Four Divisors

MediumOpen on LeetCodeProblem statement

Problem Statement

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:

Java โ€” set

Source file
class Solution {
    public int sumFourDivisors(int[] nums) {
        int ans = 0;
        for (int i : nums)
            ans += validDivSum(i);
        return ans;
    }

    private int validDivSum(int n) {
        Set<Integer> set = new HashSet<>();
        for (int i = 1; i * i <= n; i++) {
            if (n % i == 0) {
                set.add(i);
                set.add(n / i);
            }
        }
        if (set.size() == 4) {
            int sum = 0;
            for (int i : set)
                sum += i;
            return sum;
        }
        return 0;
    }
}