题目如下:
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
解题思路:把nums中每个元素有几个除数都算出来就好了。
代码如下:
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