绿色圃中小学教育网

c语言求最大公约数和最小公倍数代码

[原创]
导读 C语言中求最大公约数和最小公倍数是一个非常基础的算法问题。下。绿色圃中小学教育网百科专栏,提供全方位全领域的生活知识

C语言中求最大公约数和最小公倍数是一个非常基础的算法问题。下面我们来介绍一下如何用C语言来实现这两个算法。

1. 求最大公约数

最大公约数,也称为最大公因数,是指两个或多个整数共有的约数中最大的一个。求最大公约数的常用算法有欧几里得算法和更相减损术。

欧几里得算法又称辗转相除法,它的基本思想是:

如果a能够被b整除,那么最大公约数就是b;如果a不能被b整除,那么将a对b取余得到c,将b赋值给a,将c赋值给b,继续进行上述操作,直到a能够被b整除为止,此时b即为最大公约数。

下面是用C语言实现欧几里得算法求最大公约数的代码:

```c

int gcd(int a, int b)

{

if (b == 0)

return a;

else

return gcd(b, a % b);

}

```

2. 求最小公倍数

最小公倍数是指两个或多个整数公有的倍数中最小的一个。求最小公倍数的常用算法有辗转相除法和公式法。

辗转相除法的基本思想是:

先求出两个数的最大公约数,然后使用以下公式计算最小公倍数:

最小公倍数 = (a * b) / 最大公约数

下面是用C语言实现辗转相除法求最小公倍数的代码:

```c

int lcm(int a, int b)

{

int temp = gcd(a, b);

return (a * b) / temp;

}

```

以上就是用C语言求最大公约数和最小公倍数的算法和代码实现。这些算法虽然简单,但却是C语言编程中非常重要的基础知识。