You are given one integer number n. Find three distinct integers a,b,c such that 2≤a,b,c and a⋅b⋅c=n or say that it is impossible to do it.
If there are several answers, you can print any.
You have to answer t independent test cases.
Input
The first line of the input contains one integer t (1≤t≤100) — the number of test cases.
The next n lines describe test cases. The i-th test case is given on a new line as one integer n (2≤n≤109).
Output
For each test case, print the answer on it. Print “NO” if it is impossible to represent n as a⋅b⋅c for some distinct integers a,b,c such that 2≤a,b,c.
Otherwise, print “YES” and any possible such representation.
Example
Input
5
64
32
97
2
12345
Output
YES
2 4 8
NO
NO
NO
YES
3 5 823
问你能否使用三个不同的数字,使得三个数字的乘积刚好为这个数,如果满足输出YES并且输出三个数字,否则输出NO
#include"bits/stdc++.h"
using namespace std;
int main()
{
int t;
int a,b,c,n,x[4];
cin>>t;
while(t--)
{
cin>>n;
//int flag=0;
if(n<24)
{
cout<<"NO"<<endl;
continue;
}
else
{
a=0,b=0;
for(int i=2;i<=n/i;i++)
{
if(n%i==0)
{
a=i;
break;
}
}
if(a==0)
{
cout<<"NO"<<endl;
continue;
}
n/=a;
for(int i=a+1;i<n/i;i++)
{
if(n%i==0)
{
b=i;
break;
}
}
if(b==0)
{
cout<<"NO"<<endl;
}
else
{
c=n/b;
cout<<"YES"<<endl;
cout<<a<<" "<<b<<" "<<c<<endl;
}
}
}
return 0;
}