#include<bits/stdc++.h>
using namespace std;
int primer[10000],cnt[10000],ans,n,c;
inline bool judge(int x)
{
for(int i=0;i<c;++i)
{
int temp=x,k=0;
while(temp)
{
k+=temp/primer[i];
temp/=primer[i];
}
if(k<cnt[i])return false;
}
return true;
}
int main()
{
int t;
cin>>t;
while(t--)
{
c=0;
cin>>n;
if(n==1)
{
cout<<1<<endl;
continue;
}
memset(cnt,0,sizeof(cnt));
for(int i=2;i*i<=n;++i)
{
if(n%i==0)
{
primer[c]=i;
while(n%i==0)
{
cnt[c]++;
n/=i;
}
++c;
}
}
if(n>1) primer[c]=n,cnt[c]=1,c++;
int left=0,right=1e9;
while(left<=right)
{
int mid=(left+right)/2;
if(judge(mid))
{
ans=mid;
right=mid-1;
}
else left=mid+1;
}
cout<<ans<<endl;
}
return 0;
}