逆元小结

(p) 为素数且 (a,p) 互素时

根据费马小定理,就是 (a^{p-2})

平凡的情况

(ax equiv 1 pmod p)

(1)(n)

对于每个 (i),有 (p=ki+r)
(ki+r equiv 0 pmod p ightarrow kr^{-1} +i^{-1} equiv 0 pmod p)
(i^{-1} equiv -kr^{-1} equiv -lfloor p/i floor (p mod i)^{-1} pmod p)

(1!)(n!)

先费马小定理求 ((n!)^{-1})
((i!)^{-1} equiv 1/i! equiv 1/(i+1)! imes (i+1) equiv ((i+1)!)^{-1} imes (i+1) pmod p)
适用于 (n<p) 时。
所以我比较推崇这种方法:先算 (1 sim n) 的,然后递推乘起来

for(int i=2; i<=n; i++)
	ni[i] = (ll)(p-p/i) * ni[p%i] % p;
for(int i=2; i<=n; i++)
	ni[i] = (ll)ni[i-1] * ni[i] % p;
原文地址:https://www.cnblogs.com/poorpool/p/8530410.html