如何在连续素数上找到集合中的最大距离

  • 本文关键字:集合 距离 连续 java primes
  • 更新时间 :
  • 英文 :


我正在编写一个方法,该方法可以在一组连续素数中找到最大距离。例如,如果集合是2,3,5,7,11,13,17,19,23,29;该方法将返回6,因为集合内的最大距离是6(23-29(。

到目前为止,我的代码是:

public static double primeSpace(int n)
{
int i = 0;
int Prime1;
int Prime2;
while (i <= 0)
{
for(; i <= n; i++)
{
if (isPrime(n))
{
Prime1 = n;

}
}
}
}

所以很明显,我不知道如何存储素数2的值,这样我就可以减去,然后我就输了。

你不需要双循环,想想这个问题,你所做的只是计算一个数字和后面的数字之间的差。

您只需要存储一个局部变量max,每次差值大于max时,都为max分配一个新值。

同样不清楚你的输入是什么,素数列表是从哪里来的>?n是从2开始的素数列表的大小吗?

我想你想要这样的代码:

List<Integer> primeList = new ArrayList<>();
primeList.add(2);
primeList.add(3);
primeList.add(5);
primeList.add(7);
primeList.add(11);
primeList.add(13);
primeList.add(17);
primeList.add(19);
primeList.add(23);
primeList.add(29);
int distance = 0;
for(int i=1;i <primeList.size();i++) {
int tempDistance = primeList.get(i)-primeList.get(i-1);
if (tempDistance>distance) {
distance = tempDistance;
}
}
System.out.println(distance);
}

最新更新