首页 > 代码库 > c语言:辗转相除法求最大公约数、最小公倍数

c语言:辗转相除法求最大公约数、最小公倍数

辗转相除法,又称欧几里得算法。两个正整数a和b(a>b),它们的最大公约数等于余数c和较小的数b之间的最大公约数。最小公倍数=两数之积/最大公约数

#include <stdio.h>
int get1(int a, int b)
{
if (a < b)
{
int c = a;
a = b;
b = c;
}
while (a%b != 0)
{
b = a%b;
a = b;
}
return b;
}
int get2(int a,int b)
{
return a*b / get1(a, b);
}
int main()
{
printf("最大公约数%d\n", get1(200, 15));
printf("最小公倍%d", get2(200, 15));
return 0;
}

 

c语言:辗转相除法求最大公约数、最小公倍数