输入两个正整数m,n,输出其最大公约数
时间: 2024-05-13 16:20:56 浏览: 106
python 输入两个正整数计算最大公约数和最小公倍数 示例
5星 · 资源好评率100%
可以使用辗转相除法(欧几里得算法)求解最大公约数,具体过程如下:
1. 用较小的数去除较大的数,如果可以整除,则较大的数除以较小的数,将余数记为r;
2. 接下来用刚才的余数去除较小的数,如果可以整除,则较小的数除以余数,将新的余数记为r;
3. 重复第2步,直到余数为0,此时较小的数即为最大公约数。
代码实现如下:
```python
def gcd(m, n):
if m < n:
m, n = n, m
while n != 0:
r = m % n
m = n
n = r
return m
```
其中,第一行代码是为了保证m大于等于n,方便后续的计算。在while循环中,不断用n去除m,将余数记为r,然后将n赋值为r,继续循环,直到余数为0,此时的n即为最大公约数。
阅读全文