来自数字java的素数数组

时间:2016-11-12 21:28:35

标签: java primes

我正在尝试创建一个从数字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并且没有注册素数。我究竟做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你得到ArrayIndexOutOfBoundsException错误,因为在你的第二个if语句中d增加,你永远不会检查它是否达到num-1(c数组的最后一个可能的索引)。

您应该考虑将while循环条件更改为检查d值的内容。