设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。假设有两个整数m和n,通过连续运用求余运算,直到余数为0为止,最后非0的余数就是最大公约数。请改正程序中的错误,使它能得出正确的结果。
时间: 2024-03-22 20:40:15 浏览: 53
用辗转相除法求最大公约数
好的,这是一个比较简单的问题。以下是一个可以工作的函数MaxCommonFactor(),它使用了欧几里德算法计算两个正整数的最大公约数:
```python
def MaxCommonFactor(m, n):
if m < n:
m, n = n, m
while n != 0:
m, n = n, m % n
return m
```
这个函数首先将两个整数比较,将较大的数赋值给m,较小的数赋值给n。然后,使用while循环,连续对m和n进行求余运算,直到余数为0为止。最后,非0的余数就是最大公约数。
阅读全文