5178. 四因数
思路:直接暴力超时,一般我们允许10*8左右的算法,索引计算因数的时候需要优化,sqrt
class Solution {
public:
int sumFourDivisors(vector<int>& nums) {
int res=0;
for(int num:nums)
res+=each_res(num);
return res;
}
private:
int each_res(int num){
int s = sqrt(num);
if(num%s==0 && num==s*s) return 0;
int count=2;
int res = num+1;
for(int i=2;i<=s;i++){
if(num%i==0){
res += (i+(num/i));
count+=2;
}
if(count>4) break;
}
return count==4?res:0;
}
};