逆元(个人模版)

逆元:

 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 }  

 

posted @ 2017-03-16 23:10  Angel_Kitty  阅读(208)  评论(0编辑  收藏  举报