func_code_string: #include <bits/stdc++.h>   using namespace std;   long long gcd(long long a, long long b);   long long nCr(long long n, long long r);   long long pow(long long b, long long n);   void read(long long a[], long long n);   void solve() {     long long n;     cin >> n;     vector<long long> v;     for (long long i = 2; i * i <= n; i++) {       if (n % i == 0) {         v.push_back(i);         n /= i;         if (v.size() == 2) {           v.push_back(n);           break;         }       }     }     if (v.size() != 3) {       cout <<  NO  << endl;       return;     }     if (v[0] != v[1] && v[0] != v[1] && v[1] != v[2]) {       cout <<  YES  << endl;       cout << v[0] <<     << v[1] <<     << v[2] << endl;     } else {       cout <<  NO  << endl;     }   }   signed main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     long long t;     cin >> t;     while (t--) {       solve();     }   }   long long gcd(long long a, long long b) { return (b == 0) ? a : gcd(b, a % b); }   long long nCr(long long n, long long r) {     if (r > n) return 0;     if (r * 2 > n) r = n - r;     if (r == 0) return 1;     long long ans = n;     for (long long i = 2; i <= r; i++) {       ans *= (n - i + 1);       ans /= i;     }     return ans;   }   long long pow(long long b, long long n) {     long long p = b, ans = 1;     while (n) {       if (n & 1) {         ans *= p;       }       p *= p;       n = n >> 1;     }     return ans;   }   void read(long long a[], long long n) {     for (long long i = 0; i < n; i++) {       cin >> a[i];     }   }   