仅作笔记,推荐博客https://www.cnblogs.com/dupengcheng/p/5487362.html
关于乘法逆元,一般来说就两种解法
第一种:利用费马小定理,什么是费马小定理呢?
自己去看(菜鸟说不清楚)
代码板子
ll NI(ll k,ll p)//p为取模数mod-2
{
ll sum=1;
while(p)
{
if(p&1)sum=(sum*k)%mod;
k=(k*k)%mod;
p >>=1;
}
return sum;
}
第二种依靠拓展欧几里得算法
因为乘法逆元ax≡1 (mod p),所以可以写成类似拓展欧几里得的式子ax+py=1即ax+by=1;上板子
void exgcd(ll a,ll b,ll& d,ll& x,ll& y)
{
if(!b) {
d = a; x = 1; y = 0; }
else{
exgcd(b, a