用辗转相除法(欧几里德法)求最大公约数
时间: 2023-06-11 17:08:36 浏览: 332
辗转相除法求两个数的最大公约数
辗转相除法,又称欧几里得算法,是求两个正整数的最大公约数的一种方法。
假设需要求的两个整数分别为a、b(a>b),则按照辗转相除法的步骤,可以得到如下算法:
1. 用b去除a,得到商q和余数r(r=b-aq)。
2. 如果r=0,则b即为最大公约数。
3. 如果r≠0,则用b除以r,得到商q1和余数r1(r1=b-qr)。
4. 如果r1=0,则r即为最大公约数。
5. 如果r1≠0,则继续用r去除r1,得到商q2和余数r2,重复步骤4,直到余数为0为止。
按照上述算法,可以求得a和b的最大公约数gcd(a,b)。
下面是一个使用Python实现辗转相除法的示例代码:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
```
这个函数会返回a和b的最大公约数。
阅读全文