思路就是先找到所有的因子,在从因子中找结果。
再找因子的过程中要注意限制条件是ii<n,我一开始是用iii<n,很明显错误了,原因是我们在里面的判断条件是n%i,此时n=i(n/i),这里i是两个因子的乘积。
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n=2021041820210418;
long long a[10000];
int m=0;
int ans=0;
for(long long i=1;i*i<=n;i++){
if(n%i==0){
a[m++]=i;
if(n/i!=i)
a[m++]=n/i;
}
}
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
for(int k=0;k<m;k++){
if(a[i]*a[j]*a[k]==n) ans++;
}
}
}
cout<<ans;
return 0;
}