求1-1000以内的素数Java实现
时间: 2024-12-23 14:15:38 浏览: 4
在Java中,我们可以使用一个简单的算法来找出1到1000之间的所有素数。这个算法通常称为埃拉托斯特尼筛法(Sieve of Eratosthenes)。以下是该算法的一个基本实现:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int limit = 1000;
boolean[] isPrime = new boolean[limit + 1];
// 初始化所有数字为质数(大于1的数)
for (int i = 2; i <= limit; i++) {
isPrime[i] = true;
}
// 筛选出非质数
for (int i = 2; i * i <= limit; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= limit; j += i) { // 跳过已标记为非质数的数
isPrime[j] = false;
}
}
}
// 打印出所有的素数
for (int i = 2; i <= limit; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
在这个程序中,我们首先创建一个布尔数组`isPrime`,表示每个数字是否是素数。然后从2开始,如果当前数字i是素数,则将其倍数全部标记为非素数。最后,只打印出那些在循环结束时仍标记为素数的数字。
阅读全文