欧几里得算法求最大公约数、最小公倍数
这段代码就是不断用较小数和余数来更新 a 和 b,直到余数变为 0,最后返回的 a 就是最大公约数。
#include <iostream>
using namespace std;
int gcd(int a, int b){
//这个循环表示只要 b 不是 0,就继续进行。
//因为当 b == 0 时,a 就是最大公约数(GCD)。
while(b!=0){
int temp = a % b;
a = b;
b = temp;
}
return a;
}
int lcm(int a, int b){
return a*b/gcd(a,b);
}
int main(){
int a, b;
cin>>a>>b;
cout<<lcm(a.b);
cout<<gcd(a,b);
return 0;
}