求 1~n 在模意義下的乘法逆元

UXOD發表於2024-10-26

洛谷 P3811 【模板】模意義下的乘法逆元

如何求 \(x\ (x>1)\) 在模 \(p\) 意義下的逆元:

\(p \div x\) 的帶餘除法,設 \(p=kx+r\ (r<x)\),其中 \(k=\lfloor\frac{p}{x}\rfloor,\ r=p\bmod x\),顯然有 \(k<p\)

則有 \(p\equiv kx+r\equiv 0 \pmod p\)

反解 \(x\),得 \(x\equiv -rk^{-1}\pmod p\)

兩邊取倒數,得 \(x^{-1}\equiv -kr^{-1}\pmod p\)

注意 \(-k < 0\),不能直接乘,要用 \(-k\equiv p-k\pmod p\),這樣 \(p-k>0\),可以直接乘。

這樣我們就得到了 \(x\) 的逆元:

\(x^{-1}\equiv (p-k)r^{-1}\pmod p\),其中 \(k=\lfloor\frac{p}{x}\rfloor,\ r=p\bmod x\)

由於 \(r<x\),所以在從小到大遞推 \(x^{-1}\) 的時候,\(r^{-1}\) 肯定已經計算過了。

補一個 \(1^{-1}\equiv 1\pmod p\)

以上。

相關文章