如何通过以最小步长增加每个数字来使所有相对素数的整数数组?

时间:2013-12-08 07:57:47

标签: algorithm primes

如何通过以最小步长增加每个数字来使一个整数数组成为相对素数?

直到现在,我已经提出了这样的策略: 1)除以它们的公倍数(比如k,然后我执行的每一步将等于k) 2)递增“最接近”素数的数字 但是,我不确定这种策略的正确性。 有没有人有更好的主意?

例如,a [5] = {2,4,6,7,8} 在7个动作中,解决方案应该是{2,5,9,7,11}。

1 个答案:

答案 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.