1、暴力求解法
从大的数字开始,逐个判断,能够被两个数都整除的第一个数就是最小公倍数;
#include <iostream>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b) {
int n=max(a,b);
while(1){
if((n%a==0)&&(n%b==0)){
break;
}
n++;
}
cout<<n<<endl;
}
}
2、更优解法
先计算出最大公约数:辗转相除法;
最小公倍数=两数相乘再除以最大公约数
int yue(int a,int b){
int c=0;
while(c = a%b){
a=b;
b=c;
}
return b;
}
int main() {
int a, b;
while (cin >> a >> b) {
cout<<(a*b)/yue(a,b)<<endl;
}
}

京公网安备 11010502036488号