c中用辗转相除法和递归函数求解最大公约数
辗转相除法
#include "stdio.h"
int lcm2(int a,int b)
{
int i ,r ;
r=a%b;
while(r!=0)
{
a = b;
b = r;
r = a%b;
}
return b;
}
int main()
{
int m ,n;
scanf("%d%d",&m,&n);
printf("%d",lcm2(m,n));
return 0;
}
递归函数
#include "stdio.h"
int gcd(int a,int b)
{
if(a==b)
return a;
else
{
if(a>b)
return gcd(a-b,b);
else
return gcd(a,b-a);
}
}
int main()
{
printf("%d",gcd(50,15));
return 0;
}