題目
給你一個整數陣列 nums,請你返回該陣列中恰有四個因數的這些整數的各因數之和。
如果陣列中不存在滿足題意的整數,則返回 0 。
示例:輸入:nums = [21,4,7]輸出:32
解釋:21 有 4 個因數:1, 3, 7, 21
4 有 3 個因數:1, 2, 4
7 有 2 個因數:1, 7
答案僅為 21 的所有因數的和。
提示:1 <= nums.length <= 10^4
1 <= nums[i] <= 10^5
解題思路分析1、遍歷;時間複雜度O(nlog(n)),空間複雜度O(1)
func sumFourDivisors(nums []int) int { res := 0 for i := 0; i < len(nums); i++ { sum := 0 count := 0 for j := 1; j*j <= nums[i]; j++ { if nums[i]%j == 0 { count++ sum = sum + j if j*j != nums[i] { count++ sum = sum + nums[i]/j } } } if count == 4 { res = res + sum } } return res}
總結
Medium題目,按照題目意思依次遍歷即可
最新評論