如何通过以最小步长增加每个数字来使一个整数数组成为相对素数?
直到现在,我已经提出了这样的策略: 1)除以它们的公倍数(比如k,然后我执行的每一步将等于k) 2)递增“最接近”素数的数字 但是,我不确定这种策略的正确性。 有没有人有更好的主意?
例如,a [5] = {2,4,6,7,8} 在7个动作中,解决方案应该是{2,5,9,7,11}。
答案 0 :(得分:0)
对于所有整数n,您可以使用gcd(n,n + 1)= 1。因此,一种可能的策略是采用具有最小绝对差值的两个数字,并使小于等于the_value_of_the_bigger_one - 1
。
顺便说一下,我认为你的第二个策略是错误的。想象一下,下一个素数是p。然后你可以构造一个数组,其中所有数字(除此之外,你正在增加)可以有p作为因子。当你增加它时,数组的gcd将等于p。示例数组可以是(24,2,48) - 当前gcd是2,但是当你尝试第二个策略时,数组将变为(24,3,48),gcd等于3.