欧几里得算法求最大公约数、最小公倍数
这段代码就是不断用较小数和余数来更新 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;
}