问题 C: C语言8.13

题目描述

写两个函数,分别求两个整数的最大公约数和最小公倍数。用主函数分别调用这两个函数,并输出结果。

输入

两个用空格隔开的正整数,保证二者的值均不超过 10000。

输出

输出两个正整数的最大公约数和最小公倍数,用空格隔开。
请注意行尾输出换行。

样例输入

1
24 10

样例输出

1
2 120

提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
int max(int x,int y){
int z=y;
while(x%y!=0)
z=x%y,x=y,y=z;
return z;
}
int min(int x,int y){
int c=x,d=y;
int z=y;
while(x%y!=0)
z=x%y,x=y,y=z;
return c*d/z;
}
int main(){
int a,b;
cin>>a>>b;
cout<<max(a,b)<<' '<<min(a,b)<<endl;
}