#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;
}