
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #include <map> #include <queue> using namespace std; #define maxn 65536 int vis[maxn]; int prime[6543]; int cnt[6543]; int n_prime=0; void Prime() { memset(vis,1,sizeof(vis)); vis[0]=vis[1]=0; for(int i=2;i<maxn;i++) { if(vis[i]) { prime[++n_prime]=i; for(int j=2*i;j<maxn;j+=i) vis[j]=0; } } //cout<<n_prime<<":"<<prime[n_prime]<<endl; } int main() { queue<int>q; Prime(); int t; scanf("%d",&t); while(t--) { while(!q.empty()) q.pop(); int n; scanf("%d",&n); memset(cnt,0,sizeof(cnt)); for(int i=1;i<=n_prime;i++) { if(n<prime[i]) break; if(n%prime[i]==0) { while(n%prime[i]==0) { n/=prime[i]; q.push(prime[i]); } } } int tag=0; while(!q.empty()) { if(tag==0) { tag=1; cout<<q.front(); } else cout<<"*"<<q.front(); q.pop(); } cout<<endl; } return 0; }