java中打印1到1000之间的所有质数
时间: 2024-11-12 11:38:16 浏览: 26
在Java中,打印1到1000之间的所有质数可以使用“埃拉托斯特尼筛法”(Sieve of Eratosthenes),这是一种古老的算法,用于找出某个范围内所有的质数。以下是使用这种方法的一个简单示例:
public class PrimeNumbers {
public static void main(String[] args) {
int n = 1000; // 我们想要找到1到1000之间的质数
boolean[] isPrime = new boolean[n + 1]; // 初始化一个布尔数组
// 所有数字开始时被视为质数
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
// 遍历从2到sqrt(n),将每个质数的倍数标记为合数
for (int p = 2; p * p <= n; p++) {
if (isPrime[p]) {
for (int i = p * p; i <= n; i += p) {
isPrime[i] = false; // 标记p的倍数为合数
}
}
}
// 打印出1到n之间的所有质数
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.println(i);
}
}
}
}
这段代码首先初始化一个布尔数组,然后通过循环遍历数组,将每个质数的倍数设为非质数。最后,只打印那些仍然标记为质数的元素(值为true的位置)。