怎么筛选素数并用数组保存
时间: 2024-10-25 07:09:50 浏览: 23
在 Java 中,筛选素数可以通过编写一个简单的算法来完成,该算法遍历给定范围内的每个数字,检查它们是否只有两个正因子(1 和自身)。下面是使用循环和条件判断的一个简单示例:
```java
public class PrimeNumbers {
public static int[] sieveOfEratosthenes(int n) {
boolean[] isPrime = new boolean[n + 1];
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
// Start from the first prime number, which is 2
for (int p = 2; p * p <= n; p++) {
// If isPrime[p] is not changed, then it is a prime
if (isPrime[p]) {
// Mark all multiples of p as composite
for (int i = p * p; i <= n; i += p)
isPrime[i] = false;
}
}
// Collect prime numbers into an array
int count = 0;
int[] primes = new int[count];
for (int i = 2; i <= n; i++) {
if (isPrime[i])
primes[count++] = i;
}
return Arrays.copyOf(primes, count);
}
public static void main(String[] args) {
int limit = 50; // Set the upper limit for your range
int[] primesArray = sieveOfEratosthenes(limit);
System.out.println("Prime numbers between 1 and " + limit + ":");
for (int prime : primesArray) {
System.out.print(prime + " ");
}
}
}
```
在这个示例中,我们使用了埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种高效的查找素数的方法。`sieveOfEratosthenes` 方法首先假设所有数字都是素数,然后从最小的质数开始,将其倍数标记为合数。最后,只保留那些未被标记为合数的数字。
运行这段代码后,它会在控制台输出指定范围内(这里是1到50)的素数。
阅读全文