欧几里得算法又称辗转相除法,用于计算两个正整数的最大公约数。
gcd(a,b) = gcd(b,a%b)
int gcd(int a, int b) { return b? gcd(b, a % b) : a; }
拓展欧几里得算法
void gcd(int a, int b, int &d, int &x, int &y){ if(!b) d = a, x = 1, y = 0; else gcd(b, a % b, d, y, x),y -= x * (a / b); }
来源:https://www.cnblogs.com/nioh/p/12219813.html