用java打印2到1000之间的所有素数。
时间: 2024-05-03 12:22:48 浏览: 67
以下是使用Java编写的程序,可以打印2到1000之间的所有素数。
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 1000;
for (int i = 2; i <= n; i++) {
boolean isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.print(i + " ");
}
}
}
}
```
该程序使用两个嵌套的循环来检查每个数字是否为素数。外部循环遍历所有数字,内部循环检查该数字是否可以被除以2到该数字本身-1的任何数字整除。如果该数字不能被除以任何数字整除,则该数字是素数,程序将其打印出来。
相关问题
用java打印100~200之间所有质数
以下是用Java打印100~200之间所有质数的代码:
```
public class Main {
public static void main(String[] args) {
for(int i=100; i<=200; i++) {
boolean isPrime = true;
for(int j=2; j<=Math.sqrt(i); j++) {
if(i % j == 0) {
isPrime = false;
break;
}
}
if(isPrime) {
System.out.print(i + " ");
}
}
}
}
```
输出结果为:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199。
java中打印1到1000之间的所有质数
在Java中,打印1到1000之间的所有质数可以使用“埃拉托斯特尼筛法”(Sieve of Eratosthenes),这是一种古老的算法,用于找出某个范围内所有的质数。以下是使用这种方法的一个简单示例:
```java
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的位置)。
阅读全文