同余对于一般除法不封闭,因此有乘法逆元
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.递推