【发布时间】:2020-04-04 05:07:15
【问题描述】:
假设我有数字 1 到 N,我想根据以下标准将它们分成子集:
- 每个数字只能出现在 1 个子集中。
- 子集的元素必须互质。
- 最小化子集的总数。
我的方法是通过使用埃拉托色尼筛法找到直到 N 的所有素数,然后将它们相应地划分为子集。例如,对于 N=5,我可以有两个子集至少为 {1,2,3,5} 和 {4}。但我不确定如何在子集中分配元素,以便每个子集具有互质元素。 这是我的逐步方法:
- 设置 1:{所有素数最多为 N}
- 设置 2:{2k,3k,5k...pk} 其中p 是一个素数并且 pkk
- 其余元素
问题是如何让步骤 3 中的元素在子集中互质 有人可以就如何实现它以及我的逻辑缺陷提出更好的方法吗?
【问题讨论】:
标签: algorithm subset dynamic-programming primes sieve-of-eratosthenes