HJ108-求最小公倍数
1.暴力破解
从两个数中较大的数开始,逐个进行判断,能够被两个数都整除,则第一个就是最小公倍数
#include<iostream>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b){
int m=max(a,b);
while(1){
if(m%a==0&&m%b==0){
cout<<m<<endl;
break;
}
m++;
}
}
return 0;
}
2.更优解法
两个数的最小公倍数,就是两个数的乘积,除以最小公约数
最小公约数:辗转相除法
a=9,b=6
9%6=3
6%3=0
while((c=a%b)){
a=b;
b=c;
}
return b;
#include<iostream>
using namespace std;
//辗转相除法求最大公约数
int gcd(int a,int b){
int c;
while((c=a%b)){
a=b;
b=c;
}
return b;
}
int main(){
int a,b;
while(cin>>a>>b){
//最小公倍数=两个数的乘积除以他们的最大公约数
cout<<(a*b)/gcd(a,b)<<endl;
}
return 0;
}