题意
给定 n,p,n,p,n,p, 求 1∼n1∼n1∼n中所有整数在模 pp 意义下的乘法逆元。(p为质数)(p为质数)(p为质数)
题解
根据费马小定理,我们要一个一个求exgcdexgcdexgcd,显然太慢了
我们假设p=k×i+rp=k\times i+rp=k×i+r,那么有p(modi)=rp(modi)=rp(modi)=r且有
k×i+r≡0(mod p)k\times i+r\equiv 0(mod\ p)k×i+r≡0(mod p)同时乘上i−1,r−1i^{-1},r^{-1}i−1,r−1得到
k×r−1+i−1≡0(mod p)k\times r^{-1}+i^{-1}\equiv 0(mod\ p)k×r−1+i−1≡0(mod p)
整理得
−k×r−1≡i−1(mod p)-k\times r^{-1}\equiv i^{-1}(mod\ p)−k×r−1≡i−1(mod p)
(p(mod i))−1=r−1(p(mod\ i))^{-1}=r^{-1}(p(mod i))−1=r−1
k=⌊pi⌋k=\lfloor \frac{p}{i}\rfloork=⌊ip⌋
于是得到一个递推关系
−⌊pi⌋×(p(mod i))−1≡i−1(mod p)-\lfloor \frac{p}{i}\rfloor\times (p(mod\ i))^{-1}\equiv i^{-1}(mod\ p)−⌊ip⌋×(p(mod i))−1≡i−1(mod p)
inv[i]=inv[p%i]*(p-p/i)%p;