模板:逆元求解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板:逆元求解相关的知识,希望对你有一定的参考价值。
1 //费马小定理 inv(a) = a^(p-2) (mod p),保证a,p互质,并且p是素数的情况下使用,局限性有点大。 2 LL fast_mod(LL x,LL n,LL mod){ 3 LL ans=1; 4 while(n>0){ 5 if(n&1) ans=(ans*x)%mod; 6 x=(x*x)%mod; 7 n>>=1; 8 } 9 return ans; 10 } 11 LL inv(LL a,LL p){ //Fermat 12 return fast_mod(a,p-2,p); 13 } 14 15 //扩展欧几里得 保证a,p互质情况下使用 16 LL e_gcd(LL a,LL b,LL &x,LL &y){ 17 LL d=a; 18 if(b!=0){ 19 d=e_gcd(b,a%b,y,x); 20 y-=(a/b)*x; 21 } 22 else{x=1;y=0;} 23 return d; 24 } 25 26 LL inv(LL t,LL p){ 27 LL x,y; 28 if(e_gcd(t,p,x,y)==1) return (x%p+p)%p; 29 else return -1; 30 }
以上是关于模板:逆元求解的主要内容,如果未能解决你的问题,请参考以下文章