求最大公约数的O(logN) 算法

来源:互联网 发布:js 设置select 选中值 编辑:程序博客网 时间:2024/05/16 13:09

看数据结构与算法分析一书看到O(logN)复杂度求最大公约数的算法。

算法如下:

/* 求最大公约数 */unsigned int Gcd(unsigned int M, unsigned int N){unsigned int Rem;while (N > 0) {Rem = M % N;M = N;N = Rem;}return M;}

该算法的时间复杂度为O(logN)。该算法主要是根据“M%N != 0 时,Gcd(M, N) == Gcd(N, M%N)”实现的。

原创粉丝点击