java筛选法求素数
时间: 2024-03-23 14:35:26 浏览: 69
筛选法(Sieve of Eratosthenes)是一种用于求解素数的经典算法,它可以高效地找出一定范围内的所有素数。下面是Java中使用筛选法求素数的示例代码:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100; // 求解范围为1到100的素数
boolean[] isPrime = new boolean[n + 1]; // 初始化一个布尔数组,默认值为false
// 初始化数组,假设所有数都是素数
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
// 筛选素数
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
// 输出素数
System.out.println("素数列表:");
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
上述代码中,我们使用一个布尔数组`isPrime`来表示每个数是否为素数。首先将数组中所有元素初始化为`true`,然后从2开始遍历数组,如果当前数字是素数,则将其倍数标记为非素数。最后遍历数组输出所有素数。
阅读全文