algorithm - 哪种方法更好

标签 algorithm prime-factoring greatest-common-divisor

哪种方法可以提供更好的时间复杂度来找到给定数字的 GCD(a,b)?

质因数分解

(或)

下面的方法

int gcd(int a, int b)
{
    return (b==0)?a:gcd(b,a%b);
}

最佳答案

这取决于您输入的范围以及您对 Prime factorization 的实现. 由于后者没有针对大数的有效算法,因此似乎可以实现 GCD 以提供更有效的结果。

要点是如何在您的算法中计算模 - 假设它被有效地实现(不使用除法),这个 GCD 的实现(也称为 Euclidean algorithm)应该更有效。

关于algorithm - 哪种方法更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24796688/

相关文章:

推导时间线/年表的算法

python - 遍历 < n 的数字,确定每个数字的质因数分解

r - 使用辅助函数为 R 中的向量创建最小公倍数函数

python - 为什么python算法中给定数字的最大质因数有效?

algorithm - 将数组的两个相邻元素连接(求和)为一个元素,直到其大小为 K 并且新元素的 GCD 最大可能

c++ - C++中内置__gcd方法的实现

javascript - 如何以编程方式在代码中创建有效的 15 拼图

c++ - 如何构建有或没有递归的非二叉树?

javascript - 根据字符数动态拆分数组

java - 质因数分解计算器中的 for 循环显示合数并且循环不会重新启动