代码实现:
#include<stdio.h>
int main()
{
int a,b,r,temp;
scanf("%d %d",&a,&b);
if(a<b)//如果a<b,将a,b位置对换
{
temp=a;
a=b;
b=temp;
}
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
//当r=0时,此时b的值就是最大公约数
printf("%d\n",b);
return 0;
}
用递归来实现:
#include<stdio.h>
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
else
{
return gcd(b,a%b);
}
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",gcd(a,b));
return 0;
}
PS:
a,b的最小公倍数=(a*b)/(a,b的最大公约数)