import math MOD = 998244353 # Index * A Problem の答えの上界 LIMIT = 42 LCM = [0] + [math.lcm(*range(1, i + 1)) for i in range(1, LIMIT + 2)] inv_2 = pow(2, MOD - 2, MOD) def solve(N): def count(ans): loop = N // LCM[ans] res = LCM[ans] // ans * ((N + 1) * loop - loop * (loop + 1) * inv_2 * LCM[ans]) % MOD return res answer = 0 for i in range(1, LIMIT + 1): answer += (count(i) - count(i + 1)) * i answer %= MOD return answer # def normal(L, R): # for i in range(LIMIT, 0, -1): # lcm = math.lcm(*range(1, i + 1)) # min_val = lcm // i # d = (L + min_val - 1) // min_val # if lcm * d > R: # continue # A = [lcm * d // j for j in range(1, i + 1)] # assert len({a * i for i, a in enumerate(A, start=1)}) == 1 # return i if __name__ == "__main__": T = int(input()) for _ in range(T): N = int(input()) print(solve(N)) # assert solve(N) == sum(sum(normal(l, r) for r in range(l, N + 1)) for l in range(1, N + 1)) % MOD