[入门赛 #9] 最澄澈的空与海 (Hard Version)

题目背景

材料 1: > 请小心地计算下面的算式:$138 - 108 \div 6 = ?$ > 你大概难以置信,这个算式的计算结果竟然是 $5!$ 材料 2: > 对于一个正整数 $x$,$x! = 1 \times 2 \times \cdots \times (x - 1) \times x$。我们称 $x!$ 为 $x$ 的阶乘。 > 特别的,$0! = 1$。 显然,「$138 - 108 \div 6 = 5$」是错误的,而「$(138 - 108) \div 6 = 5$」是正确的,所以对材料 1 中的内容,部分读者会认为「作者没有搞清加减乘除的运算优先级关系而犯错」。 然而,材料 1 最后一行的叹号并不是标点符号,而是材料 2 提到的「阶乘」。 考虑到这一点,「$138 - 108 \div 6 = 5! = 1 \times 2 \times \cdots \times 5 = 120$」显然就是正确的了。

题目描述

然而,此题可能与上面的题目背景关系不是很大。 我们会给你 $T$ 组数据,每组数据包括一个正整数 $n$。 对于每组数据,请你帮助求出满足以下条件的整数三元组 $(x, y, z)$ 的组数: 1. $x \geq 0$,$z \geq 1$。 2. $x - y \div z = n!$ 且 $(x - y) \div z = \dfrac{n!}{n}$。 由于答案可能过大,因此你需要输出答案对 $998244353$ 取模后的结果。 不难注意到答案有可能为 $\infty$,这时请按照「输出格式」要求进行处理。 **请注意此处应满足 $(x - y) \div z = \dfrac{n!}{n}$ 而不是 $= n$。** 请注意这里的 $\div$ 不是向下取整的整除,这显然意味着你需要保证 $y \div z$ 和 $(x - y) \div z$ 为整数。

输入输出格式

输入格式


输入共 $T + 1$ 行。 第一行为一个整数 $T$。 接下来 $T$ 行,每行一个整数 $n$。

输出格式


输出共 $T$ 行,每行一个整数或一个字符串。 对第 $i$ 行,如果对于输入数据中第 $i + 1$ 行的 $n$,满足 $x - y \div z = n!$ 且 $(x - y) \div z = \dfrac{n!}{n}$ 的整数三元组 $(x, y, z)$ 有无限个,则输出一行 `inf`,否则输出满足条件的三元组的数量对 $998244353$ 取模后的结果。

输入输出样例

输入样例 #1

3
2
3
4

输出样例 #1

1
3
6

说明

### 样例 1 解释 样例中的具体三元组如下: | $n$ | 所有可能的三元组 | | :----------: | :----------: | | $2$ | $(2, 0, 2)$ | | $3$ | $\begin{matrix}(8, 4, 2) & (5, -5, 5) & (6, 0, 3)\end{matrix}$ | | $4$ | $\begin{matrix}(19, -95, 19) & (21, -21, 7) & (24, 0, 4) \\ (27, 9, 3) & (20, -40, 10) & (36, 24, 2)\end{matrix}$ | ### 数据规模与约定 对于前 $20\%$ 的数据,保证 $T \leq 10$,$n \leq 10$。 对于前 $40\%$ 的数据,保证 $n \leq 10 ^ 3$。 对于另外 $20\%$ 的数据,保证 $T = 1$。 对于 $100\%$ 的数据,保证 $1 \leq T \leq 10 ^ 5$,$1 \leq n \leq 10 ^ 6$。