1360: 最大公约与最小公倍
题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入
4 6
样例输出
2 12
提示
注意运算过程中的溢出问题
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m,i,t,a,b;
scanf("%d %d",&m,&n);
if(m>n)
{
t=m;
m=n;
n=t;
}
if(n%m==0)
{
printf("%d %d",m,n);
}
else
{
for(i=m;i>0;i--) //找出最大公约数
{
if(n%i==0&&m%i==0)
{
a=i;
break;
}
}
for(i=n;;i++) //找出最小公倍数
{
if(i%m==0&&i%n==0)
{
b=i;
break;
}
}
printf("%d %d",a,b);
}
return 0;
}