编写函数计算两个数据m和n的最大公约数(不使用递归) 算法: 1.对于已知两数m,n,使得m>n; 2.m除以n得余数r; 3.若r=0,则n为最大公约数结束;否则执行步骤4; 4.m ← n,n ← r,再重复执行步骤2。
时间: 2024-03-05 20:51:31 浏览: 31
下面是代码实现:
```python
def gcd(m, n):
while n != 0:
r = m % n
m, n = n, r
return m
```
使用示例:
```python
>>> gcd(24, 36)
12
>>> gcd(15, 25)
5
```
相关问题
使用python代码 编写函数计算两个数据m和n的最大公约数(不使用递归)
可以使用辗转相除法来计算两个数的最大公约数,可以使用以下代码实现:
```python
def gcd(m, n):
while n != 0:
r = m % n
m = n
n = r
return m
```
在这个函数中,我们使用一个 while 循环来进行辗转相除的操作,直到 n 为 0 为止。在每次循环中,我们计算出 m 除以 n 的余数 r,并将 n 赋值为原来的 r,m 赋值为原来的 n,这样就可以继续进行下一轮循环。当 n 为 0 时,最大公约数就是 m,我们将其返回即可。
使用递归编写函数计算两个数据m和n的最大公约数
可以使用辗转相除法来求解两个数的最大公约数,而递归可以非常方便地实现这个算法。具体实现如下:
```python
def gcd(m, n):
if n == 0:
return m
else:
return gcd(n, m % n)
```
这个函数的基本思路是:如果n等于0,则m就是最大公约数;否则,递归地调用gcd函数,将n和m%n作为参数传入。这样,每次递归都会将较大的那个数不断地除以较小的那个数,直到其中一个数被除尽为止,此时剩下的那个数就是最大公约数。
使用这个函数,可以方便地计算任意两个数的最大公约数,例如:
```python
print(gcd(24, 36)) # 输出12
print(gcd(17, 23)) # 输出1
print(gcd(60, 48)) # 输出12
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)