用到了gcd()函数,用于求最大公约数
gcd()函数用到了函数的递归调用,可能相对有点难想,但这个理解了可以背下来;
求最小公倍数的时候可以利用,最大公约数和最小公倍数的关系:
如果输入两个数a,b,最大公约数和最小公倍数分别是m,n。他们的关系是x*y=m*n;
#include<stdio.h>
int gcd(int a,int b);//求最大公约数
int min(int a,int b);//最小公倍数
int main()
{
int a,b,c,d;
scanf("%d %d",&a,&b);
c=gcd(a,b);
d=min(a,b);
printf("%d %d",c,d);
return 0;
}
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int min(int a,int b)
{
int n;
n=(a*b)/(gcd(b,a%b));
return n;
}