#include <bits/stdc++.h>
using namespace std;
static const int MOD = 998244353;
int addmod(int a, int b) {
a += b;
if (a >= MOD) a -= MOD;
return a;
}
int submod(int a, int b) {
a -= b;
if (a < 0) a += MOD;
return a;
}
int main() {
int T;
cin >> T;
vector<int> ns(T);
int maxn = 0;
for (int i = 0; i < T; ++i) {
cin >> ns[i];
maxn = max(maxn, ns[i]);
}
// 需要到 2*maxn 的逆元(因为用到 1,3,5,...,2n-1)
int LIM = 2 * maxn;
vector<int> inv(LIM + 1, 0);
inv[1] = 1;
for (int i = 2; i <= LIM; ++i) {
inv[i] = 1LL * (MOD - MOD / i) * inv[MOD % i] % MOD;
}
// 前缀和:S1[n] = sum_{k=1..n} 1/(2k-1)
// S2[n] = sum_{k=1..n} 1/(2k-1)^2
vector<int> S1(maxn + 1, 0), S2(maxn + 1, 0);
for (int k = 1; k <= maxn; ++k) {
int odd = 2 * k - 1;
int inv_odd = inv[odd];
int inv2_odd = 1LL * inv_odd * inv_odd % MOD;
S1[k] = addmod(S1[k - 1], inv_odd);
S2[k] = addmod(S2[k - 1], inv2_odd);
}
for (int i = 0; i < T; ++i) {
int n = ns[i];
int ans = submod(S1[n], S2[n]); // Var = sum 1/(2k-1) - sum 1/(2k-1)^2
cout << ans << '\n';
}
return 0;
}