您将获得一个正整数数组A.您需要创建数组A的子集,其中元素的最大数量具有属性,但是我们可以使用任意两个数量的子集(我们可以将其称为x和y ),我们得到gcd(x,y)高于1.打印子集的元素。
例如,如果我们有n = 4且数组为{15,7,10,6},则输出必须为{15,10,6}。
有没有比回溯更快的解决方案?
答案 0 :(得分:2)
是的,我认为你有更好的解决方案。将其转换为图形问题:每个整数都是一个节点;两个节点i
和j
具有连接它们的边 iff gcd(i,j)> 1。
现在,你需要找到最大的完全连接的子图,(a.k.a.一个集团)。一些研究将向您展示如何实现它。它效率不高,但更易于处理和可靠。
答案 1 :(得分:0)
这相当于Clique problem。所以不,没有有效的解决办法(除非P = NP)。