c/c++训练1---最大公约数与最小公倍数
时间: 2023-04-25 12:06:19 浏览: 171
最大公约数和最小公倍数的c/c++实现
最大公约数和最小公倍数是数学中的基本概念,也是编程中常用的算法。在C/C++中,可以使用辗转相除法或欧几里得算法来求解最大公约数,使用最大公约数求解最小公倍数。
辗转相除法是一种求最大公约数的方法,其基本思想是用较大数除以较小数,再用余数去除除数,直到余数为为止,此时除数即为最大公约数。
欧几里得算法也是一种求最大公约数的方法,其基本思想是用较大数除以较小数,得到余数后,将较小数作为除数,余数作为被除数,继续进行相除,直到余数为为止,此时除数即为最大公约数。
求最小公倍数可以通过最大公约数来实现,最小公倍数等于两数之积除以最大公约数。
以下是C/C++代码示例:
辗转相除法:
```c
int gcd(int a, int b) {
if (b == ) {
return a;
}
return gcd(b, a % b);
}
```
欧几里得算法:
```c
int gcd(int a, int b) {
while (b != ) {
int r = a % b;
a = b;
b = r;
}
return a;
}
```
最小公倍数:
```c
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
```
阅读全文