#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MOD = 998244353;
ll powmod(ll a, ll b) {
ll res = 1;
a %= MOD;
while (b) {
if (b & 1) res = res * a % MOD;
a = a * a % MOD;
b >>= 1;
}
return res;
}
ll cntdivi(ll n) {
ll cnt = 1;
for (ll i = 2; i * i <= n; ++i) {
if (n % i != 0) continue;
ll e = 0;
while (n % i == 0) {
n /= i;
++e;
}
cnt *= (e + 1);
}
if (n > 1) cnt *= 2;
return cnt;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
ll n;
cin >> n;
ll tmp = cntdivi(n);
ll res = powmod(n, tmp / 2);
if (tmp % 2 == 1) {
ll sq = (ll)sqrt(n);
if (sq * sq != n) {
cout << "Never gonna give you up!\n";
exit(0);
}
res = res * sq % MOD;
}
cout << res << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwpjb25zdCBpbnQgTU9EID0gOTk4MjQ0MzUzOwoKbGwgcG93bW9kKGxsIGEsIGxsIGIpIHsKICAgIGxsIHJlcyA9IDE7CiAgICBhICU9IE1PRDsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSByZXMgPSByZXMgKiBhICUgTU9EOwogICAgICAgIGEgPSBhICogYSAlIE1PRDsKICAgICAgICBiID4+PSAxOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKbGwgY250ZGl2aShsbCBuKSB7CiAgICBsbCBjbnQgPSAxOwogICAgZm9yIChsbCBpID0gMjsgaSAqIGkgPD0gbjsgKytpKSB7CiAgICAgICAgaWYgKG4gJSBpICE9IDApIGNvbnRpbnVlOwogICAgICAgIGxsIGUgPSAwOwogICAgICAgIHdoaWxlIChuICUgaSA9PSAwKSB7CiAgICAgICAgICAgIG4gLz0gaTsKICAgICAgICAgICAgKytlOwogICAgICAgIH0KICAgICAgICBjbnQgKj0gKGUgKyAxKTsKICAgIH0KICAgIGlmIChuID4gMSkgY250ICo9IDI7CiAgICByZXR1cm4gY250Owp9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQtLSkgewogICAgICAgIGxsIG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgbGwgdG1wID0gY250ZGl2aShuKTsKICAgICAgICBsbCByZXMgPSBwb3dtb2QobiwgdG1wIC8gMik7CiAgICAgICAgaWYgKHRtcCAlIDIgPT0gMSkgewogICAgICAgICAgICBsbCBzcSA9IChsbClzcXJ0KG4pOwogICAgICAgICAgICBpZiAoc3EgKiBzcSAhPSBuKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJOZXZlciBnb25uYSBnaXZlIHlvdSB1cCFcbiI7CiAgICAgICAgICAgICAgICBleGl0KDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlcyA9IHJlcyAqIHNxICUgTU9EOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IHJlcyA8PCAnXG4nOwogICAgfQp9Cg==