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