CF1294C Product of Three Numbers
题面传送门
题意简述:给定\(n\),\(a\times b\times c=n\)且\(a\),\(b\),\(c\)各不相等且都为正整数,求任意一组\(a\),\(b\),\(c\)。
暴力即可,将\(a\)分解质因数后再分解一次就可以了,注意两次分解不能重复。
代码实现:
#include<cstdio>
#include<cmath>
using namespace std;
int n,t,m,ans,tot,a[100039],head,k,flag,f[100039];
int main(){
register int i,j;
scanf("%d",&t);
while(t--){
flag=0;
scanf("%d",&n);
m=sqrt(n);
for(i=2;i<=m;i++){
if(n%i==0){
ans=n/i;
k=sqrt(ans);
for(j=2;j<=k;j++) {
if(ans%j==0&&j!=i&&ans/j!=j&&ans/j!=i){
printf("YES\n%d %d %d\n",i,j,ans/j);
flag=1;
break;
}
}
if(flag) break;
}
}
if(!flag) printf("NO\n");
}
}