逆元的意义及求法

2019-04-13 17:08发布

快速幂求逆元: int q_pow(int a,int n,int m) { int ans = 1; while(n) { if (n&1) { ans = ans*a%m; } a = a*a%m; n >>= 1; } return ans; } LL Fermatinv(LL a,LL m) { //前提p是质数 return qpow(a,m-2,m); } 扩展欧几里得求逆元 void ex_gcd(LL a,LL b,LL &x,LL &y){ if(!b){x=1;y=0;return;} ex_gcd(b,a%b,y,x); y-=a/b*x; } LL mod_rev(LL a,LL n) { LL x,y; ex_gcd(a,n,x,y); return (x+n)%n; }