c语言最大公约数算法
时间: 2023-11-18 15:56:55 浏览: 91
求最大公约数的三种算法
C语言最大公约数算法有多种实现方式,以下是其中两种常见的方法:
方法一:辗转相除法
辗转相除法,也叫欧几里得算法,是求最大公约数的一种常用方法。其基本思想是用较大数除以较小数,再用除数除以出现的余数(第一次除的余数是较小数),不断重复这个过程,直到余数为0为止,此时除数就是最大公约数。
代码实现:
```
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
```
方法二:更相减损术
更相减损术是古老的一种求最大公约数的方法,其基本思想是用两个数中的较大数减去较小数,然后用得到的差值和较小数继续做减法,直到两个数相等为止,此时的数就是最大公约数。
代码实现:
```
int gcd(int a, int b) {
if (a == b) {
return a;
}
if (a < b) {
return gcd(b, a);
}
return gcd(a - b, b);
}
```
阅读全文