#include #include #include #include #define ll long long using namespace std; const int maxn=1000; ll vis[maxn]; vector prime; void init(){ for(int i=2;i s; bool check(ll i,ll x){ //if(x%i==0) return false; ll i2=i; s.clear(); while(i2!=1){ s.insert(vis[i2]); i2/=vis[i2]; } vector cnt1(s.size()); vector cnt2(s.size()); int now=0; for(ll j:s){ while(i%j==0) { i/=j; cnt1[now]+=1; } while(x%j==0){ x/=j; cnt2[now]+=1; } now+=1; } int sum1=1;int sum2=1; for(int j:cnt2) sum1*=(j+1); for(int j=0;j>T; init(); while(T--){ ll X;cin>>X; ll p=-1; for(ll i:prime){ if(X%i!=0){ p=i; break; } } ll ans=p*X; for(ll i=p-1;i>=2;i--){ //i 是一个合数,i可以被X的因子表示,但是i不能被X整除。 if(check(i,X)){ ans=i*X; } } cout<