题目描述
写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
输入格式
两个数
输出格式
最大公约数 最小公倍数
样例输入
6 15
样例输出
3 30
解题思路
1.求最大公约数的方法
//辗转相除法又称为欧几里德算法。这个方法大家已经都已经在数学上学过了。具体的步骤就是:用较小数除较大数,
//再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
//最后的除数就是这两个数的最大公约数。
2.求最小公倍数的方法
//求最小公倍数相对来说就比较简单了。只需要先求出最大公约数。用两个数的乘积除以最大公约数即可。
解题代码
//写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
#include <iostream>
#include <cstdlib>
using namespace std;
//辗转相除法又称为欧几里德算法。这个方法大家已经都已经在数学上学过了。具体的步骤就是:用较小数除较大数,
//再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
//最后的除数就是这两个数的最大公约数。
int kgv(int a,int b){
int c;
while(b)
{
c=a%b;
a=b;
b=c;
}
return a;
}
//求最小公倍数相对来说就比较简单了。只需要先求出最大公约数。用两个数的乘积除以最大公约数即可。
void gcd(int a,int b,int c){
cout<<(a*b)/c;
}
int main() {
int a, b;
cin >> a >> b;
int c = kgv(b, a);
cout<<c<<" ";
gcd(a,b,c);
}