java统计素数个数
时间: 2024-12-15 18:26:08 浏览: 6
在Java中,我们可以编写一个简单的函数来统计一定范围内素数的数量。素数是指只有两个正因数(1和自身)的大于1的自然数。下面是一个基本的实现思路:
```java
public class PrimeCounter {
public static void main(String[] args) {
int limit = 100; // 范围,你可以更改这个值来测试不同范围内的素数数量
int primeCount = countPrimes(limit);
System.out.println("在" + limit + "以内有" + primeCount + "个素数。");
}
public static int countPrimes(int n) {
if (n <= 1) {
return 0;
}
boolean isPrime[n+1];
for (int i=0; i<=n; ++i) {
isPrime[i] = true;
}
for (int p=2; p*p<=n; p++) {
// 如果isPrime[p]尚未改变,说明p是素数
if (isPrime[p]) {
for (int i=p*p; i<=n; i += p) {
isPrime[i] = false;
}
}
}
int primeCount = 0;
for (int i=2; i<=n; i++) {
if (isPrime[i]) {
primeCount++;
}
}
return primeCount;
}
}
```
在这个程序中,我们首先创建了一个布尔数组`isPrime`,并初始化所有元素为`true`,然后从2开始遍历到sqrt(n),对于每个数p,如果它是素数,则将它的倍数标记为非素数。最后,计数数组中仍然为`true`的位置即为素数。
阅读全文