推理:
假如当前计算的是x在%p意义下的逆元,设$p=kx+y$,则
$Large kx+yequiv 0(mod p)$
两边同时乘上$x^{-1}y^{-1}$(这里代表逆元)
则方程变为$Large k*y^{-1}+x^{-1}equiv 0(mod p)$
化简得$Large x^{-1}equiv -k*y^{-1}(mod p)$
$Large x^{-1}equiv -iggllfloorfrac{p}{x}iggr floor *(p mod x)^{-1}(mod p)$
结果为
$Large x^{-1}equiv (p-iggllfloorfrac{p}{x}iggr floor )*(p mod x)^{-1}(mod p)$
除了1,p mod x一定小于x,它的逆元已经算过,所以可以线性求出逆元
void Inverse(int p,int a[],int n){//线性求<=n的数%p意义下的逆元 a[1]=1; for(int i=2;i<=n;i++){ a[i]=1ll*(p-p/i)*a[p%i]%p; } }