AT_arc216_d [ARC216D] GCD of Product of Arithmetic Progression

Description

正整数 $ N, B, C, D $ が与えられます. 非負整数 $ k $ に対し,整数 $ a_k $ を初項 $ Bk+C $ ,公差 $ D $ ,項数 $ N $ の等差数列の全項の積,すなわち $ a_k=(Bk+C)(Bk+C+D)(Bk+C+2D)\dots(Bk+C+(N-1)D) $ で定義します. $ a_0,a_1,a_2,\ldots,a_N $ の最大公約数を $ 998244353 $ で割った余りを求めてください. $ T $ 個のテストケースが与えられるので,それぞれについて答えてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ 各テストケースは以下の形式で与えられる. > $ N $ $ B $ $ C $ $ D $

Output Format

$ T $ 行出力せよ. $ i $ 行目には $ \mathrm{case}_i $ に対する答えを出力せよ.

Explanation/Hint

### Sample Explanation 1 $ 1 $ つ目のテストケースについて, $ (a_0, a_1, a_2, a_3) = (1 \times 2 \times 3, 2 \times 3 \times 4, 3 \times 4 \times 5, 4 \times 5 \times 6) = (6, 24, 60, 120) $ であり,これらの最大公約数は $ 6 $ です. ### Constraints - $ 1\leq T\leq 10^5 $ - $ 1\leq N,B,C,D\leq 10^6 $ - 入力は全て整数