推导过程
(1^{-1}equiv 1(mod p))
设 (p=k imes i+r,r<i,1<i<p)。
将这个式子放在 (mod p) 的意义下,得到 (k imes i+requiv 0(mod p))。
两边同时乘上 (i^{-1},r^{-1}),得到
(k imes r^{-1}+i^{-1}equiv 0(mod p))
(i^{-1}equiv-k imes r^{-1}equiv0(mod p))
(i^{-1}equiv-lfloorfrac{p}{i} floor imes(p mod i)^{-1}(mod p))
而 ((p mod i)^{-1}) 是已经求过的了,因此 (i^{-1}) 可以线性求出。
部分代码
ni[1]=ni[0]=1;
for (int i=2;i<=mx;++i)
ni[i]=(ll)(mod-mod/i)*ni[mod%i]%mod;