用JAVA统计n以内所有素数个数
时间: 2024-09-21 08:07:55 浏览: 46
在Java中,可以使用一种名为“埃拉托斯特尼筛法”(Sieve of Eratosthenes)的经典算法来统计不超过给定整数n的所有素数个数。下面是一个简单的实现示例:
```java
public class PrimeCount {
public static void main(String[] args) {
int n = 100; // 指定范围,例如统计100以内的素数个数
System.out.println("Number of primes less than or equal to " + n + " is: " + countPrimes(n));
}
public static int countPrimes(int n) {
boolean[] isPrime = new boolean[n + 1]; // 初始假定所有数都是质数
Arrays.fill(isPrime, true); // 将0和1设为非质数
for (int i = 2; i * i <= n; i++) {
// 如果isPrime[i]为真,说明i是质数,更新其倍数为非质数
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
// 统计并返回非素数(实际为素数)的数量
int count = 0;
for (boolean b : isPrime) {
if (b) {
count++;
}
}
return count;
}
}
```
上述代码首先创建了一个布尔数组,用于跟踪每个数是否为质数。然后遍历到平方根,对每个质数,将它的倍数标记为非质数。最后,统计未被标记的数(即素数),返回它们的数量。
阅读全文