写一个计算 gcdm n的算法
以下是一个经典的欧几里得算法,用于计算两个数的最大公约数(gcd):
- 如果 m < n,则交换 m 和 n。
- 如果 n = 0,则返回 m。
- 否则,计算 r = m mod n,然后将 m 设为 n,将 n 设为 r,返回步骤 2。
以下是一个 Python 实现:
def gcd(m, n):
if m < n:
m, n = n, m
while n != 0:
r = m % n
m, n = n, r
return m
该算法的时间复杂度为 O(log(min(m, n)))。
原文地址: http://www.cveoy.top/t/topic/heEy 著作权归作者所有。请勿转载和采集!