1063: 最大公约与最小公倍
题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入 Copy
4 6
样例输出 Copy
2 12
提示
注意运算过程中的溢出问题
代码
#include<stdio.h>
int main()
{
long long int m,n,r,t,s;
scanf("%ld%ld",&m,&n);
s=m*n;
if(m<n)
{
t=m;m=n;n=t;
}
while((r=m%n)!=0)
{
m=n;
n=r;
}
printf("%ld %ld\n",n,s/n);
return 0;
}