辗转相除法 LL gcd(LL a,LL b) { return b ? gcd(b,a % b) : a; } 辗转相减法 LL gcd_sub(LL a,LL b) { if(a < b) swap(a,b); //保证前面的要大于后面的 if(b == 1) return a; return gsd_sub(b,a / b); }