逆元:
1 int ex_gcd(int a,int b,int &x,int &y) 2 { 3 if(b==0) 4 { 5 x=1; 6 y=0; 7 return a; 8 } 9 int ans=ex_gcd(b,a%b,x,y); 10 int tmp=x; 11 x=y; 12 y=tmp-a/b*y; 13 return ans; 14 } 15 int mod_inverse(int a,int m) 16 { 17 int x,y; 18 ex_gcd(a,m,x,y); 19 return (x%m+m)%m;//如果直接求解出来的x是一个负数,那么显然我们要将其转化成正数。 20 }
原文:http://www.cnblogs.com/ECJTUACM-873284962/p/6562199.html