给定一个包含 n 个正整数的集合 A,确定一个由尽可能少的元素组成的非空子集 B,使得它们的 GCD 为 1,并输出其大小。
例如:
5
6 10 12 15 18产生“3”的输出,而:
5
2 4 6 8 10等于“NONE”,因为无法确定子集。
所以它看起来很基本,但我仍然坚持下去。我对此的想法如下:我们知道集合中已经存在某个数字的倍数是没有用的,因为它们的除数是某个因子 k 的倍数,我们要寻找最小的子集。因此,对于每个 n i ,我们从进一步的计算中删除 k 是正整数的任何 kn i 。
不过,这就是我卡住的地方。接下来我该怎么办?如果已经有一些 2-element 子集,然后是 3-elem 等等,我只能想到一种愚蠢的蛮力尝试方法。我应该检查什么才能以更聪明的方式确定它?