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;}