📜  最大公约数欧几里得算法 (1)

📅  最后修改于: 2023-12-03 15:40:14.339000             🧑  作者: Mango

最大公约数欧几里得算法

最大公约数算法,也称欧几里得算法或辗转相除法,是求两个正整数最大公约数的经典算法。其基本思想是利用两个数的余数之间的关系,不断地对较小的数取模,直到模为0为止,此时较大的数即为最大公约数。

算法步骤
  1. 将两数中较大的赋值给a,较小的赋值给b。
  2. 计算a除以b的余数r。
  3. 若r等于0,则b即为最大公约数。
  4. 若r不等于0,则令a等于b,b等于r,并返回第二步。
伪代码实现

下面是伪代码实现:

function EuclideanAlgorithm(a, b)
    if b > a then swap(a, b)
    while b ≠ 0 do
        r := a mod b
        a := b
        b := r
    endwhile
    return a
end function

Markdown格式如下:

1. function EuclideanAlgorithm(a, b)
2.     if b > a then swap(a, b)
3.     while b ≠ 0 do
4.         r := a mod b
5.         a := b
6.         b := r
7.     endwhile
8.     return a
9. end function
时间复杂度

最大公约数欧几里得算法的时间复杂度为O(logn),其中n是两个数较大的那个数。

总结

最大公约数欧几里得算法是求两个正整数最大公约数的经典算法,它的基本思想是利用两个数的余数之间的关系,不断地对较小的数取模,直到模为0为止,此时较大的数即为最大公约数。它的时间复杂度为O(logn)。