在java中用数组中的素数填充数组的方法

时间:2018-04-19 21:53:05

标签: java arrays primes

编写一个方法,当给定整数值时,检查该值是否为素数。 使用您之前的答案,编写用前20个素数填充数组的代码。

我已经解决了第一部分,并且有一个名为checkPrime(int n)的方法,它返回true或false。我在第二部分感到困惑,我应该使用哪些循环,我试图做这样的事情但是卡住了:

public static void fillArray() {
    int[] arr = new arr[20];
    n = 1;

    for (int i = 0; i < 20; i++) {
        if (checkPrime(n) == True) {
            arr[i] = n;
            n++;
        } else {
            n++;
        }
}

这里,如果数字不是素数n正在增加,但我们不会再检查它是否为素数。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

你需要一个变量来保持你的输出数组中的位置,另一个变量在你的循环中递增以测试素数。而且,我会返回我建造的int[]。并将所需元素的数量传递给函数。当它是素数时,将它添加到数组中。循环直到数组索引等于数组长度。它是int[](不是arr[])。像,

public static int[] fillArray(int count) {
    int[] arr = new int[count];
    int n = 0;
    for (int i = 1; n < arr.length; i++) {
        if (checkPrime(i)) {
            arr[n] = i;
            n++;
        }
    }
    return arr;
}

,如果您使用的是Java 8+,则可以IntStream使用filterlimit。像,

public static int[] fillArray(int count) {
    return IntStream.range(1, Integer.MAX_VALUE)
            .filter(x -> checkPrime(x))
            .limit(count).toArray();
}

答案 1 :(得分:-2)

就这样做,我不会增加,直到循环找到一个prine数字并将其添加到数组

Sheet3