在10个数字的数组中查找素数

时间:2015-11-25 20:04:53

标签: java loops

一旦我从用户那里拿出10个数字并将它们放在一个大小为10的数组中,我想检查数组中的每个数字是否为素数,并计算有多少素数。这是我试图做的:

int count=0;
for(int r=0;r<10;r++) {
    for(int t=2; t < array[r];t++) {
        if(array[r] % t != 0) {
            count++;
        }
    }
}

数组[r]此时已填充数字,所以我需要做的就是检查每个数字是否为素数。

1 个答案:

答案 0 :(得分:0)

这是您可以检查素数的另一种方法。它不会增加1,所以它更快。

int count=0;
for(int r=0;r<10;r++){
    if (isPrime(array[r])) count++;
}

方法:

public static boolean isPrime(int n) {
    if(n < 2) return false;
    if(n == 2 || n == 3) return true;
    if(n%2 == 0 || n%3 == 0) return false;
    int sqrtN = (int)Math.sqrt(n)+1;
    for(int i = 6; i <= sqrtN; i += 6) {
        if(n%(i-1) == 0 || n%(i+1) == 0) return false;
    }
    return true;
}