#P1013. 阶乘之积

    ID: 14 传统题 1000ms 512MiB 尝试: 0 已通过: 0难度: 普及 ← 上一题 下一题 → 随机一题 上传者: 标签 数学 数论 递推 快速幂 前缀和
显示设置

阶乘之积

题目描述

小P最近学习了阶乘,于是他想对自己手上的一个数做一些探究。

给定一个正整数 nn,请你求出 0∼n0 \sim n 中所有整数的阶乘的乘积,再对 998244353998244353 取模的结果。

一个数 xx 的阶乘 x!x! 定义为 1×2×⋯×x1 \times 2 \times \cdots \times x,特别地,0!=10! = 1。

形式化地,你需要求出

(∏i=0ni!) mod 998244353\left(\prod_{i=0}^{n} i!\right) \bmod 998244353

输入格式

一行一个整数 nn。

输出格式

一行一个整数,表示题目中所求的结果。

输入输出样例 #1

输入 #1

5

输出 #1

34560

输入输出样例 #2

输入 #2

2

输出 #2

2

输入输出样例 #3

输入 #3

998244353

输出 #3

0

说明

样例解释

样例一:$0! \times 1! \times 2! \times 3! \times 4! \times 5! = 1 \times 1 \times 2 \times 6 \times 24 \times 120 = 34560$。

样例二:0!×1!×2!=1×1×2=20! \times 1! \times 2! = 1 \times 1 \times 2 = 2。

样例三:当 n=998244353n = 998244353 时,乘积中包含了 998244353!998244353! 这个因子,而

$$998244353! = 1 \times 2 \times \cdots \times 998244353$$

其中含有因子 998244353998244353,所以整个乘积是 998244353998244353 的倍数,对 998244353998244353 取模后为 00。

数据范围

  • 对于 20%20\% 的数据,1≤n≤10001 \le n \le 1000。
  • 对于 60%60\% 的数据,1≤n≤1051 \le n \le 10^5。
  • 对于 100%100\% 的数据,1≤n≤10181 \le n \le 10^{18}。