线性求逆元P3812 【模板】线性基

题意

给定 n , p , n,p, n,p, 1 ∼ n 1∼n 1n中所有整数在模 pp 意义下的乘法逆元。 ( p 为 质 数 ) (p为质数) (p)

题解

根据费马小定理,我们要一个一个求 e x g c d exgcd exgcd,显然太慢了
我们假设 p = k × i + r p=k\times i+r p=k×i+r,那么有 p ( m o d i ) = r p(modi)=r p(modi)=r且有
k × i + r ≡ 0 ( m o d   p ) k\times i+r\equiv 0(mod\ p) k×i+r0(mod p)同时乘上 i − 1 , r − 1 i^{-1},r^{-1} i1,r1得到
k × r − 1 + i − 1 ≡ 0 ( m o d   p ) k\times r^{-1}+i^{-1}\equiv 0(mod\ p) k×r1+i10(mod p)
整理得
− k × r − 1 ≡ i − 1 ( m o d   p ) -k\times r^{-1}\equiv i^{-1}(mod\ p) k×r1i1(mod p)
( p ( m o d   i ) ) − 1 = r − 1 (p(mod\ i))^{-1}=r^{-1} (p(mod i))1=r1
k = ⌊ p i ⌋ k=\lfloor \frac{p}{i}\rfloor k=ip
于是得到一个递推关系
− ⌊ p i ⌋ × ( p ( m o d   i ) ) − 1 ≡ i − 1 ( m o d   p ) -\lfloor \frac{p}{i}\rfloor\times (p(mod\ i))^{-1}\equiv i^{-1}(mod\ p) ip×(p(mod i))1i1(mod p)

inv[i]=inv[p%i]*(p-p/i)%p;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值