LeetCode 1390. 四因数

思路

从1开始遍历到题目范围的因子,将有这个因子的数因子数加1,因数和加上这个因子。
然后遍历nums查表即可。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
const static int l=1e5+5;
int dp[l+1];
int cnt[l+1];
void cal(){
for(int i=1;i<=l;i++){
int n=l/i;
for(int j=1;j<=n;j++){
int index=i*j;
dp[index]++,cnt[index]+=i;
}
}
}
int sumFourDivisors(vector<int>& nums) {
int res=0;
cal();
for(int i=0;i<nums.size();i++)
if(dp[nums[i]]==4)
res+=cnt[nums[i]];
return res;
}
};

LeetCode 1390. 四因数
https://xifenggood.github.io/2022/05/04/leetcode/1390/
作者
Jie Wang
发布于
2022年5月4日
许可协议