不学vector都能看懂的程序,但是得跑近10min的版本,人菜轻喷
#include<bits/stdc++.h>
using namespace std;
long long n=2021041820210418;
long long allnum[3];
long long judge()
{//判断allnum中有多少个一样的
long long a1=allnum[0],a2=allnum[1],a3=allnum[2];
if(a1!=a2 && a1!=a3 && a2!=a3) return 6;
else if(a1!=a3&&(a2==a1||a2==a3)) return 3;//2个一样
else if(a1!=a2&&(a3==a1||a3==a2)) return 3;
else if(a2!=a3&&(a1==a2||a1==a3)) return 3;
else if(a1==a2&&a1==a3) return 1;//3个一样
}
int main()
{
long long cnt=0,ans=0;
for(long long i=1;i*i*i<=n;i++)
for(long long j=1;j*j<=n/i;j++)
{
long long t=(n/i)/j;
if(i*j*t==n && i>0&&j>0&&t>0 && t>=j&&j>=i)
{
allnum[0]=i;
allnum[1]=j;
allnum[2]=t;
cout<<allnum[0]<<' '<<allnum[1]<<' '<<allnum[2]<<endl;
long long temp=judge();
ans+=judge();
cnt++;
}
}
cout<<ans<<endl;
return 0;
}
0 回复
0 转发
0 喜欢
0 阅读



