用java来统计出 n 以内所有的素个数 输入格式: 请给出最大整数以内的一个数字 n 。 输出格式: 输出 n 以内素数的个数。
时间: 2024-09-21 10:07:35 浏览: 31
在Java中,你可以通过创建一个名为`countPrimes`的方法来计算给定范围内(0到n)的素数个数。这里是一个简单的算法实现:
```java
public class Main {
public static void main(String[] args) {
int n = 50; // 输入的数字,你可以根据需要修改
System.out.println("The number of prime numbers less than or equal to " + n + " is: " + countPrimes(n));
}
public static int countPrimes(int n) {
if (n <= 1) return 0; // 1不是素数
boolean[] isPrime = new boolean[n + 1]; // 初始化一个布尔数组表示每个数是否是素数
for (int i = 2; i * i <= n; i++) { // 遍历从2到sqrt(n),检查i是否能被之前的数整除
if (!isPrime[i]) {
for (int j = i * i; j <= n; j += i) // 如果i是素数,则将其倍数标记为非素数
isPrime[j] = true;
}
}
int count = 0;
for (boolean flag : isPrime) // 统计isPrime数组中为false的元素,即素数
if (!flag)
count++;
return count;
}
}
```
在这个程序中,我们使用了埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种查找所有小于给定数n的素数的高效算法。