乘法逆元

同余对于一般除法不封闭,因此有乘法逆元

1.费马小定理

a^(p-1)=1 mod p,p为素数

故a mod p的逆元为a^(p-1),快速幂即可

 1 int pow( int n,  int k) {
 2     long long ans = 1;
 3   while(k)
 4     {
 5       if(k&1)ans*=n;ans%=Mod;
 6       n*=n;
 7       k>>=1;
 8     }
 9     return ans;
10 }
11     

2.拓展欧几里得

ax+by=1,gcd(a,b)=1;

ax=1 mod b

 1 void exgcd(int a,int b,int gcd,int &x,int &y)
 2 {
 3     if(!b)gcd=a,x=1,y=0;
 4     else
 5     exgcd(b,a%b,gcd,y,x),y-=x*a/b;
 6 }
 7 int inv(int num)
 8 {
 9     int gcd,x,y;
10     exgcd(num,MOD,g,x,y);
11     return ((x%MOD)+MOD)%MOD;
12 }

3.递推

posted @ 2020-01-20 16:21  慎独191812  阅读(90)  评论(0编辑  收藏  举报

Contact with me