#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define ll long long
#define all(x) (x).begin(), (x).end()
#define MASK(i) (1LL<<(i))
#define BIT(i,n) (((n)>>(i)) & 1LL)
template <class X, class Y> bool minimize(X& x, const Y& y) {
if(x > y){ x = y; return 1; }
return 0;
}
template <class X, class Y> bool maximize(X& x, const Y& y) {
if(x < y){ x = y; return 1; }
return 0;
}
const int N = 2e6 + 6;
int n, f[N];
void sieve()
{
f[0] = f[1] = 1;
for(int i = 2; i * i < N; ++i){
if(f[i]) continue;
for(int j = i * i; j < N; j += i)
f[j] = 1;
}
for(int i = 2; i < N; ++i){
if(!f[i]) f[i] = i;
else f[i] = f[i - 1];
}
}
int main()
{
ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define file "HAIUOC"
if(fopen(file".inp","r")){
freopen(file".inp","r",stdin);
freopen(file".out","w",stdout);
}
sieve();
cin >> n;
for(int i = 1, x; i <= n; ++i){
cin >> x;
cout << f[x] << " ";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIE1BU0soaSkgKDFMTDw8KGkpKQojZGVmaW5lIEJJVChpLG4pICgoKG4pPj4oaSkpICYgMUxMKQoKdGVtcGxhdGUgPGNsYXNzIFgsIGNsYXNzIFk+IGJvb2wgbWluaW1pemUoWCYgeCwgY29uc3QgWSYgeSkgewogICAgaWYoeCA+IHkpeyB4ID0geTsgcmV0dXJuIDE7IH0KICAgIHJldHVybiAwOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4gYm9vbCBtYXhpbWl6ZShYJiB4LCBjb25zdCBZJiB5KSB7CiAgICBpZih4IDwgeSl7IHggPSB5OyByZXR1cm4gMTsgfQogICAgcmV0dXJuIDA7Cn0KCmNvbnN0IGludCBOID0gMmU2ICsgNjsKCmludCBuLCBmW05dOwoKdm9pZCBzaWV2ZSgpCnsKICAgIGZbMF0gPSBmWzFdID0gMTsKICAgIGZvcihpbnQgaSA9IDI7IGkgKiBpIDwgTjsgKytpKXsKICAgICAgICBpZihmW2ldKSBjb250aW51ZTsKICAgICAgICBmb3IoaW50IGogPSBpICogaTsgaiA8IE47IGogKz0gaSkKICAgICAgICAgICAgZltqXSA9IDE7CiAgICB9CgogICAgZm9yKGludCBpID0gMjsgaSA8IE47ICsraSl7CiAgICAgICAgaWYoIWZbaV0pIGZbaV0gPSBpOwogICAgICAgIGVsc2UgZltpXSA9IGZbaSAtIDFdOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksY2luLnRpZSgwKSxjb3V0LnRpZSgwKTsKICAgICNkZWZpbmUgZmlsZSAiSEFJVU9DIgogICAgaWYoZm9wZW4oZmlsZSIuaW5wIiwiciIpKXsKICAgICAgICBmcmVvcGVuKGZpbGUiLmlucCIsInIiLHN0ZGluKTsKICAgICAgICBmcmVvcGVuKGZpbGUiLm91dCIsInciLHN0ZG91dCk7CiAgICB9CgogICAgc2lldmUoKTsKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpID0gMSwgeDsgaSA8PSBuOyArK2kpewogICAgICAgIGNpbiA+PiB4OwogICAgICAgIGNvdXQgPDwgZlt4XSA8PCAiICI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K