题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入
4 6
样例输出
2 12
提示
注意运算过程中的溢出问题
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入
4 6
样例输出
2 12
提示
注意运算过程中的溢出问题
#include<stdio.h>
int main()
{
long int n,m,t,a,b;
scanf("%ld%ld",&a,&b);
n=b;
m=a;
if(n<m)//确定除数与被除数的关系。
{
t=n;
n=m;
m=t;
}
while(m!=0)//循环求余。(辗转相除法)
{
t=n%m;
n=m;
m=t;
}
printf("%ld %ld",n,(a*b)/n);
return 0;
}