已知两个正整数m和n,求其最大公约数和最小公倍数。
输入格式:
两个用空格分隔的正整数m和n。
输出格式:
只有一行,为两个用空格分隔的正整数,依次代表m和n的最大公约数和最小公倍数。测试用例保证m、n及其最小公倍数可以用int存储。
输入样例:
12 36
输出样例:
12 36
代码实现:
#include <stdio.h>
//已知两个正整数m和n,求其最大公约数和最小公倍数。
int main()
{
int m,n,temp;
scanf("%d %d",&m,&n);
if(n>m)
{
temp=m;
m=n;
n=temp;
}
int reminder=m%n,div=n;
for(;reminder>0;temp=div,div=reminder,reminder=temp%div);
printf("%d %d",div,m/div*n);
return 0;
}
心得体会:辗转相除法