一旦我从用户那里拿出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]此时已填充数字,所以我需要做的就是检查每个数字是否为素数。
答案 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;
}