【问题描述】写两个函数,分别求两个正整数的最大公约数和最小公倍数,主函数调用这两个函数,并输出结果。两个正整数(a,b<100)由键盘输入。
【输入形式】两个正整数(以空格分隔)
【输出形式】最大公约数 最小公倍数(以空格分隔)
【样例输入】6 15
【样例输出】3 30
#include <stdio.h>
#include <stdlib.h>
int lcm(int a, int b);
int gcd(int a, int b);
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d %d\n",gcd(a,b),lcm(a,b));
}
return 0;
}
//最小公倍数(原来两数相乘除最大公约数)
int lcm(int a, int b)
{int n,c;
n=gcd(a,b);
c=a*b/n;
return c;
}
//最大公约数(辗转相除法)
int gcd(int a, int b)
{int r;
r=a%b;
while(r)
{a=b;
b=r;
r=a%b;
}
return b;
}