Skip to content

1284. Four Divisors

Array Math

Problem - 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

Solutions

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
class Solution:
    def sumFourDivisors(self, nums: List[int]) -> int:
        def checker(val: int) -> int:
            i = 2
            count, sum_val = 2, val + 1
            while i <= val // i:
                if val % i == 0:
                    count += 1
                    sum_val += i
                    if i ** 2 != val:
                        count += 1
                        sum_val += val // i
                i += 1
                if count > 4:
                    return 0
            return sum_val if count == 4 else 0

        return sum(checker(val) for val in nums)

Submission Stats:

  • Runtime: 223 ms (45.55%)
  • Memory: 18.7 MB (97.78%)