1.穷举循环求解法
int lcm(int a, int b) { int max = a > b ? a : b; int i; for (i = max;i<=a*b; i++) { if (i % a == 0 && i % b == 0) return i; } }
2.利用最大公约数求解
公式:最小公倍数=a*b/最大公约数
int lcm(int a,int b) { return a*b/gcd(a,b);//gcd(a,b)为a和b的最大公约数,求最大公约数见我上一篇文章有四种解法 }
3.找最小i值求解(相对高效)
int lcm(int a, int b) { int i = 1; while ((a * i) % b != 0)//当a*i是b的倍数时,也是a的i倍,退出循环 { i++; } return i * a; }