题目描述
查看题目
思路
- 先求出2021041820210418的因子,将其存储在数组中,求出一个的时候,另一个也就能知道了,当该因子为2021041820210418的平方根时,要注意,不用添加另一个因子
- 遍历因子数组,当三个数乘积为2021041820210418时,count加1
- 注意因子数组的类型一定为ll类型,int类型结果会错!!!
代码
#include<stdio.h>
long long int res[200];//!!注意类型,int型会错,ll型才行
int cnt=0;
int count;
int main(){
long long int num=2021041820210418;
long long int i;
long long int n;
for(i=1;i<=num/i;i++){
if(num%i==0){
res[cnt++]=i;
n=num/i;
if(n!=i) res[cnt++]=n;
}
}
printf("%lld\n",res[1]);
for(int a=0;a<=cnt;a++){
//printf(" bb ");
for(int j=0;j<=cnt;j++){
for(int k=0;k<=cnt;k++){
long long int tem1=res[a]*res[j];
if(tem1*res[k]==num)count++;
}
}
}
printf("%d",count);
return 0;
}