algorithm - 为大数列表找到有效的公共最大公约数
问题描述
我有一项任务,我需要检查是否可以使用公约数来简化数字列表。
例如,如果我们有数字 12 48 36,它们都可以被 12 整除。我尝试过使用素数分解。但是,我拥有的一些数字非常大(比如 20 亿),并且很快找到所有可能的素数除数变得不可行。对于上面的素数分解的例子,效果很好:
12=2^2*3
48=2^4*3
36=2^2*3^2
我已经尝试为每一对运行 Eclidean 算法(https://en.wikipedia.org/wiki/Euclidean_algorithm)并取最小的数字,但我不确定这种方法是否有效,并且不会遇到结果的某些边缘情况有效的。
例子:
min(gcd(12,48), gcd(48,36), gcd(36,12))
所以我的问题是找到数字列表的最小公分母/除数的最有效的计算方法是什么,特别是如果数字往往很大?
解决方案
推荐阅读
- angular - IE 浏览器和 Firefox Angular 5 材料输入延迟问题(通过创建一些记录使用该应用程序几分钟后延迟。)
- python - 平滑具有多条曲线的函数
- d3.js - 将图例添加到 dc.js 散点图
- c# - 获取C#中组合框的文本后,如何在单词中间添加特殊字符?
- sql - 将 Where 子句存储在表中以获取状态
- javascript - 是否可以删除段之间的边界,但在 react-chartjs-2 中保留饼图周围的边界?
- python - 在 Python 中对字典进行排序
- python - 将单个元素与元素字典键/值对匹配,其中值是列表本身
- css - @media 的目的是什么(最大宽度:-1)
- android - Android Rx 去抖算子