欧几里得:
是求两个数的最大公约数:
int gcd(int a, int b) { if(b==0) return a; return gcd(b, a%b); }
扩展欧几里得:
已知a, b求解二元一次方程ax+by =gcd(a, b)的一组解(x,y);
int exgcd(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } int gcd=exgcd(b,a%b,x,y); int x2=x,y2=y; x=y2; y=x2-(a/b)*y2; return gcd; }