求解最大公约数: 方法一: int gcd(int a, int b) { if(b==0) return a; else return gcd(b, a%b); } 方法二: int gcd(int a, int b) { return !b ? a : gcd(b, a%b); 求解最小公倍数: 在最大公约数 d 的基础上,最小公倍数 c = ab/d ; 但 ab 在实际计算时有可能溢出,更好的写法是 c = a/db . 因为 d 是 a 和 b 的最大公约数,a/d 一定可以整除。