想要求出三个数的最小公倍数,首先需要求出两个数的最小公倍数,而要求得两个数的最小公倍数就要求出其最大公约数(使用辗转相除法)
辗转相除法:假设我们有两个数a,b(a<b),现在求a,b最大公约数(借助t):
while(b%a!=0) { t=b%a; b=a; a=t; } cout<<"最大公约数:"<<b;
主要代码:
#include <iostream> using namespace std; //求出a,b的最大公约数 int gcd(int a,int b) { return a%b==0?b:gcd(b,a%b); } int main() { int a,b,c; cin>>a>>b>>c; int ab=a*b/gcd(a,b); //得到a,b的最小公倍数 cout<<ab*c/gcd(ab,c)<<endl; //得到吧,c的最小公倍数 return 0; }