Java中如何筛选质数
时间: 2024-12-15 09:15:11 浏览: 12
在Java中,可以使用一个简单的算法来筛选质数,即埃拉托斯特尼筛法(Sieve of Eratosthenes)。这个算法的主要步骤如下:
1. 创建一个boolean数组`isPrime[]`,大小从2到某个给定的最大值(例如100或更高的上限),并将所有元素初始化为true。因为2是最小的质数。
2. 遍历数组,从2开始(因为只有2才不是合数),对于每个素数i:
- 如果`isPrime[i]`为true,则它是质数,将它的所有倍数标记为合数(即把`isPrime[j * i]`设为false,其中j从2到sqrt(i))。
- 这是因为如果一个数有因子小于等于它的平方根,那么它一定有一个较小的因子已经被考虑过了。
3. 当遍历完成后,数组中值为true的索引对应的数字就是质数。
以下是简单的Java代码实现:
```java
import java.util.Arrays;
public class PrimeNumbers {
public static void sieveOfEratosthenes(int n) {
boolean isPrime[] = new boolean[n+1];
Arrays.fill(isPrime, true);
for (int p = 2; p*p <= n; p++) {
if (isPrime[p]) { // 如果p是质数
for (int i = p*p; i <= n; i += p)
isPrime[i] = false; // 标记其倍数为非质数
}
}
for (int p = 2; p <= n; p++)
if (isPrime[p])
System.out.print(p + " ");
}
public static void main(String[] args) {
int limit = 100; // 可以设置为你想要查找质数的范围
sieveOfEratosthenes(limit);
}
}
```
阅读全文