mod素数の逆数
- $10^{9} + 7, 998244353$は素数.
- 素数$p$に対し,$X/ Y \pmod p=$
(X * pow(Y, p - 2, p)) % p
【背景】
$p$を素数,$a$を$p$の倍数でない整数とすると
\begin{aligned}
a^{p-1} \equiv 1 \pmod p
\end{aligned}
が成り立つ(フェルマーの小定理).よって,a^{p-1} \equiv 1 \pmod p
\end{aligned}
\begin{aligned}
a^{-1} \equiv a^{p-2}\pmod p
\end{aligned}
である.a^{-1} \equiv a^{p-2}\pmod p
\end{aligned}
pow(base, exp[, mod])
で,pow(base, exp) % mod
が効率よく計算できる.あるいは「繰り返し二乗法」で高速に計算できる(繰り返し二乗法 - 競プロはじめました).
【例題】
- E - Sugoroku 4 (ABC275E - Sugoroku 4 - 競プロはじめました)
- E - Critical Hit (ABC280E - Critical Hit - 競プロはじめました)