//ᴇᴀᴄʜ ᴘᴇʀꜱᴏɴ ᴡɪʟʟ ᴏɴʟʏ ʜᴀᴠᴇ ᴡʜᴀᴛ ᴛʜᴇʏ ᴇɴᴅᴇᴀᴠᴏᴜʀᴇᴅ ᴛᴏᴡᴀʀᴅꜱ [53:39]
//Author: Sazid Hasan
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
#define all(a) a.begin(),a.end()
const int MAXN = 1e7+10;
vi spf(MAXN);
int bs(int mid, ll n){
int cnt = 0;
int t = n;
while(n<=mid){
cnt += mid/n;
n*=t;
}
return cnt;
}
int solve(){
int m; cin >> m;
if(m==1) return 0;
int ans = 0;
while(m!=1){
if(spf[m]==m) return max(m, ans);
int cnt = 0;
int k = spf[m];
while(m%k==0){
m/=k, cnt++;
}
int st = 1, end = cnt*k;
int mid;
while(st<=end){
mid = (st+end)/2;
if(bs(mid, k)>=cnt) end = mid-1;
else st = mid+1;
}
ans = max(ans, st);
}
return ans;
return 1;
}
int main(){
ios::sync_with_stdio(false); cin.tie(nullptr);
int testcase = 1;
cin >> testcase;
iota(all(spf), 0);
for(int i = 2; i*i < MAXN; i++){
if(spf[i]==i){
for(int j = i*i; j < MAXN; j+=i){
spf[j] = min(spf[j], i);
}
}
}
for(int tc = 1; tc <= testcase; tc++){
cout << solve() << endl;
//cout << (solve() ? "YES" : "NO") << '\n';
cerr << endl;
}
return 0;
}
Ly/htIfhtIDhtITKnCDhtJjhtIfKgOqcseG0j8m0IOG0ocmqyp/KnyDhtI/JtMqfyo8gypzhtIDhtKDhtIcg4bShypzhtIDhtJsg4bSbypzhtIfKjyDhtIfJtOG0heG0h+G0gOG0oOG0j+G0nMqA4bSH4bSFIOG0m+G0j+G0oeG0gMqA4bSF6pyxIFs1MzozOV0KLy9BdXRob3I6IFNhemlkIEhhc2FuCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgICAgICAgICAgICAgIGxsOwp0eXBlZGVmIHZlY3RvcjxpbnQ+ICAgICAgICAgICAgdmk7CiNkZWZpbmUgYWxsKGEpICAgICAgICAgICAgYS5iZWdpbigpLGEuZW5kKCkKY29uc3QgaW50IE1BWE4gPSAgICAgICAgICAxZTcrMTA7Cgp2aSBzcGYoTUFYTik7CgppbnQgYnMoaW50IG1pZCwgbGwgbil7CiAgICBpbnQgY250ID0gMDsKICAgIGludCB0ID0gbjsKICAgIHdoaWxlKG48PW1pZCl7CiAgICAgICAgY250ICs9IG1pZC9uOwogICAgICAgIG4qPXQ7CiAgICB9CiAgICByZXR1cm4gY250Owp9CgppbnQgc29sdmUoKXsKICAgIGludCBtOyBjaW4gPj4gbTsKICAgIGlmKG09PTEpIHJldHVybiAwOwogICAgaW50IGFucyA9IDA7CiAgICB3aGlsZShtIT0xKXsKICAgICAgICBpZihzcGZbbV09PW0pIHJldHVybiBtYXgobSwgYW5zKTsKICAgICAgICBpbnQgY250ID0gMDsKICAgICAgICBpbnQgayA9IHNwZlttXTsKICAgICAgICB3aGlsZShtJWs9PTApewogICAgICAgICAgICBtLz1rLCBjbnQrKzsKICAgICAgICB9CiAgICAgICAgaW50IHN0ID0gMSwgZW5kID0gY250Kms7CiAgICAgICAgaW50IG1pZDsKICAgICAgICB3aGlsZShzdDw9ZW5kKXsKICAgICAgICAgICAgbWlkID0gKHN0K2VuZCkvMjsKICAgICAgICAgICAgaWYoYnMobWlkLCBrKT49Y250KSBlbmQgPSBtaWQtMTsKICAgICAgICAgICAgZWxzZSBzdCA9IG1pZCsxOwogICAgICAgIH0KICAgICAgICBhbnMgPSBtYXgoYW5zLCBzdCk7CiAgICB9CiAgICByZXR1cm4gYW5zOwoKICAgIHJldHVybiAxOwp9CgppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOwogICAgaW50IHRlc3RjYXNlID0gMTsKICAgIGNpbiA+PiB0ZXN0Y2FzZTsKICAgIGlvdGEoYWxsKHNwZiksIDApOwogICAgZm9yKGludCBpID0gMjsgaSppIDwgTUFYTjsgaSsrKXsKICAgICAgICBpZihzcGZbaV09PWkpewogICAgICAgICAgICBmb3IoaW50IGogPSBpKmk7IGogPCBNQVhOOyBqKz1pKXsKICAgICAgICAgICAgICAgIHNwZltqXSA9IG1pbihzcGZbal0sIGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCB0YyA9IDE7IHRjIDw9IHRlc3RjYXNlOyB0YysrKXsKICAgICAgICBjb3V0IDw8IHNvbHZlKCkgPDwgZW5kbDsKICAgICAgICAvL2NvdXQgPDwgKHNvbHZlKCkgPyAiWUVTIiA6ICJOTyIpIDw8ICdcbic7CiAgICAgICAgY2VyciA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9