[leetcode] 1390. Four Divisors

网友投稿 260 2022-08-26

[leetcode] 1390. Four Divisors

Description

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: 32Explanation:21 has 4 divisors: 1, 3, 7, 214 has 3 divisors: 1, 2, 47 has 2 divisors: 1, 7The answer is the sum of divisors of 21 only.

Constraints:

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

分析

题目的意思是:找出数组中的四因数,然后因子相加求和。这道题直接的思路就是一个一个的求,我封装了count_divisor来计算一个数的因数的个数,计算完后,去除重复的因数,判断剩下的因数的个数满足4的话,就找到了一个满足的数,然后继续遍历其他的数。

代码

class Solution: def count_divisor(self,num): ans=[1,num] for i in range(2,int(sqrt(num))+1,1): if(num%i==0): ans.append(i) ans.append(num//i) return ans def sumFourDivisors(self, nums: List[int]) -> int: res=0 for num in nums: ans=self.count_divisor(num) ans=list(set(ans)) if(len(ans)==4): res+=sum(ans) return res

参考文献

​​【leetcode】1390. Four Divisors​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:俘获五感,酒店营销还可以这么玩?(酒店感官营销)
下一篇:[leetcode] 220. Contains Duplicate III
相关文章

 发表评论

暂时没有评论,来抢沙发吧~