输入两个正整数m和n,求其最大公约数和最小公倍数。
编程提示:求两个正整数的最大公约数和最小公倍数采用的是欧几里得算法,也就是我们常说的辗转相除法。该算法如下:
(1) 对于已知两数m,n,使得m>n (2) m除以n得余数r (3) 若r=0,则n为最大公约数,结束;否则执行(4) (4) m←n,n←r,再重复执行(2)
输入格式:
输入两个正整数m n,中间用一个空格分隔。
输出格式:
输出最大公约数与最小公倍数,用一个空格分隔。
输入样例:
在这里给出一组输入。例如:
9 15
输出样例:
在这里给出相应的输出。例如:
3 45
#include "stdio.h"
int main()
{
int m,n,a,b,c,x,y;
scanf("%d%d",&m,&n);
if(m>n)
b=m,c=n;
else
b=n,c=m;
if(b%c==0)
x=c,y=b;
else
for(a=1;a<n;a++)
if(b%a==0&&c%a==0)
x=a;
y=(b*c)/x;
printf("%d %d",x,y);
return 0;
}