【leetcode】1390. Four Divisors

Topics are as follows:

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.

Constraints:

  • 1 <= nums.length <= 10^4
  • 1 <= nums[i] <= 10^5

Problem-solving ideas: the nums each element has several divisor will work out just fine.

code show as below:

class Solution(object):
    def sumFourDivisors(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        import math
        res = 0
        for num in nums:
            div = []
            for i in range(1,int(math.sqrt(num))+1):
                if num % i == 0 and i not in div:
                    div.append(i)
                    if num / i != i:div.append(num/i)
                if len(div) > 4:break
            if len(div) == 4:res += sum(div)
        return res

        

 

Guess you like

Origin www.cnblogs.com/seyjs/p/12590735.html