首页 > 代码库 > 辗转相除法与扩展欧几里得

辗转相除法与扩展欧几里得

辗转相除法:求gcd(a,b)

扩展欧几里得:解关于x和y的方程:a*x+b*y=gcd(a,b)

 

 1     int gcd(int a,int b){   2         if (b==0) return a;   3         return gcd(b,a%b);   4     }   5  6  7 ------------------------------------------------ 8  9   10     int extgcd(int a,int b,int& x,int& y){  11         int d=a;  12         if (b!=0){  13             d=extgcd(b,a%b,y,x);  14             y-=(a/b)*x;  15         }else{  16             x=1;y=0;  17         }  18         return d;  19     }  

 

辗转相除法与扩展欧几里得