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