题目描述
给定两个正整数a,b,求他们的最大公约数(gcd)和最小公倍数(lcm)。这两个整数均在 int 范围内。
输入格式
两个整数 a 和 b,用空格分隔。
输出格式
两个整数表示答案,用空格隔开。
输入输出样例
输入 #1
6 15
输出 #1
3 30
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,c,d;//定义a,b两数 存储两数的变量
cin>>a>>b;
c = a;
d = b;
//将大数存储进c中,小数存储进d中
if(b>a)
{
c = b;
d = a;
}
//最大公约数一定不能大于小数
for(int i=d;i>0;i--)
if(a%i==0&&b%i==0)
{
cout<<i<<" "<<a*b/i;//最小公倍数=a*b/最大公约数
break;//因为要求最大的公约数,所以找到后直接结束
}
return 0;
}
up这里直接采用暴力枚举求最大公约数,从而求出最小公倍数。希望对大家有帮助。
感谢阅读!