给定两个正整数,求它们的最大公约数。
时间: 2024-05-07 09:16:16 浏览: 54
计算两个整数的最大公约数
5星 · 资源好评率100%
可以使用辗转相除法来求解最大公约数。
假设给定的两个正整数为a和b,且a > b。则可以进行如下的操作:
1. 用a除以b,得到余数c。
2. 如果c为0,则b即为最大公约数。
3. 如果c不为0,则用b除以c,得到余数d。
4. 重复上述步骤,直到余数为0为止。此时,除数即为最大公约数。
代码如下:
```
int gcd(int a, int b) {
if (a < b) {
int temp = a;
a = b;
b = temp;
}
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
```
需要注意的是,如果a < b,则先交换a和b的值。这是因为辗转相除法的基本思想是将两个数不断地取余,直到余数为0为止。如果a < b,则第一次取余后得到的余数是a,而此时b比a还大,因此交换a和b的值可以使得算法更加简单。
阅读全文