我需要使用他们的因子分解得到2个数字的最大公约数 这些因素将被放入柜台
c=Counter(factorslist(a))
d=Counter(factorslist(b))
所以我想像
一样添加列表g=c and d
然后我在计数器内相互重叠我应该能够得到gcd所以如果g是(2,2,3,8)我想要它来计算2*2*3*8
。
我遇到了很多麻烦,是否已经有了这样的计数器功能?或者我是否需要一个循环系统地将每个数字组合在一起?我需要先将它转换为套装或其他东西吗?
更新:好的,所以我所做的是使用g = c& d将它们加在一起 炒好了 现在我试图让我的算法工作 溶胶= 1 对于范围内的i(maxg + 1): 如果g [i]!= 0: K = G [i]于 溶胶=溶胶*(I k)的 返回溶胶 所以我要检查每个数字中有多少是在g的公因子列表中,然后将数字乘以它们的数量,然后将sol乘以,例如,五个二是sol = sol (5 * 2 )。这似乎适用于低gcds约30和更少的数字?并且它适用于复制品,但如果我用1000,500运行,我得到60回...即使1000和990给我10回。