我正在尝试创建一个从数字startLook开始的辅助方法,并从该数字返回下一个数量的素数。这是我的代码:
public int[] nPrimes(int num, int startLook) {
int y = startLook;
int x = 2;
int[] c = new int[num];
int d = 0;
while (x <= y/2) {
if (y % x == 0) {
x++;
continue;
}
if (y % x != 0) {
c[d]=y;
d++;
}
x++;
}
return c;
}
这导致ArrayIndexOutOfBoundsException
并且没有注册素数。我究竟做错了什么?提前谢谢。
答案 0 :(得分:0)
你得到ArrayIndexOutOfBoundsException错误,因为在你的第二个if语句中d增加,你永远不会检查它是否达到num-1(c数组的最后一个可能的索引)。
您应该考虑将while循环条件更改为检查d值的内容。