#nullable enable var f = new int[21]; f.AsSpan()[1..].Fill(-1); int F(int c) { if (f[c] >= 0) return f[c]; var res = 0; for (var a11 = 0; a11 <= c; a11++) { for (var a12 = 0; a11 + a12 <= c; a12++) for (var a21 = 0; a11 + a21 <= c; a21++) { for (var a22 = 0; a12 + a22 <= c && a21 + a22 <= c; a22++) { var a13 = c - a11 - a12; var a23 = c - a21 - a22; var a31 = c - a11 - a21; var a32 = c - a12 - a22; var x = c - a13 - a23; var y = c - a31 - a32; if (x >= 0 && x == y) res++; } } } return f[c] = res; } const int Mod = 998244353; var ans = new List(); var t = int.Parse(Console.ReadLine()!); while (t-- > 0) { var k = int.Parse(Console.ReadLine()!); var tns = 1L; var divz = new List(); for (var i = 2; i * i <= k; i++) { var c = 0; while (true) { var (p, q) = int.DivRem(k, i); if (q != 0) break; (k, c) = (p, c + 1); } tns = tns * F(c) % Mod; } if (k > 1) tns = tns * F(1) % Mod; ans.Add(tns); } Console.WriteLine(string.Join(Environment.NewLine, ans));