#include
#include
#include
using namespace std;
int main(){
int t;
cin>>t;
map<int,int > a;
while(t--){
int n;
cin>>n;
int k=n;
int occur=0;
for(int i=2;i*i<=n;i++){
occur=0;
if(n%i==0){
while(n%i==0){
occur++;
n=n/i;
}
a[i]=occur;
}
}
if(n!=1){
a[n]=1;}
int count=0;
if(a.size()>=3){
cout<<"YES"<<endl;
int count=0;
for(auto it=a.begin();it!=a.end();it++){
count++;
if(count==3){
break;
}
int x=pow(it->first,it->second);
cout<<x<<" ";
k=k/x;
}
cout<<k<<endl;
}
if(a.size()==1){
int u=a.begin()->first ;
if(a.begin()->second>=6){
cout<<"YES"<<endl<<u<<" "<<u*u<<" "<<k/(u*u*u)<<endl;
}
else{
cout<<"NO"<<endl;
}
}
if(a.size()==2){
int b[2];
auto it=a.begin();
b[0]=it->first;
it++;
b[1]=it->first;
if(k/(b[0]*b[1])!=b[0]||k/(b[0]*b[1])!=b[1]){
cout<<"YES"<<endl<<b[0]<<" "<<b[1]<<" "<<k/(b[0]*b[1])<<endl;
}
else{
cout<<"NO"<<endl;
}
}
a.clear();
}
}