求gcd最大公约数 欧几里得算法 int gcd(int a, int b){ // 一般要求a>=0, b>0。若a=b=0,代码也正确,返回0 return b? gcd(b, a%b):a; } 现成函数: __gcd(a, b) 它需要注意的是,参数 a 和 b 都应该是正整数,否则可能会返回负数。 最小公倍数LCM int lcm(int a, int b){ return a / gcd(a, b) * b; }