题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入
4 6
样例输出
2 12
提示
注意运算过程中的溢出问题
代码示例:
#include<stdio.h>
int main()
{
long long n,m,a,b,t; //注意运算过程中的溢出问题。
scanf("%lld%lld",&m,&n);
a=m;
b=n; //将m和n的值存储一下,因为后面在进行求最大公约数时会改变m和n的值;
while(m) //使用辗转相除法求解最大公约数。
{
t=n%m;
n=m;
m=t;
}
printf("%lld %lld",n,a*b/n);
}