以下是一个经典的欧几里得算法,用于计算两个数的最大公约数(gcd):

  1. 如果 m < n,则交换 m 和 n。
  2. 如果 n = 0,则返回 m。
  3. 否则,计算 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)))。

写一个计算 gcdm n的算法

原文地址: http://www.cveoy.top/t/topic/heEy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录