编写一个Java Application程序,输出区间[200,300]上的所有素数,将其用数组prime[]保存,并以每10个一行的形式显示运行结果。
时间: 2024-09-15 08:13:21 浏览: 64
判断101-200之间有多少个素数,并输出所有素数。.docx
编写Java应用程序来找出并打印指定区间的素数,可以按照以下步骤操作:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int lowerBound = 200;
int upperBound = 300;
boolean[] primeFlags = new boolean[upperBound + 1]; // 创建一个布尔数组标记是否为素数
for (int i = 2; i <= upperBound; i++) { // 初始化2到n之间的所有数字为素数
primeFlags[i] = true;
}
for (int i = 2; i * i <= upperBound; i++) { // 遍历从2到√n,检查每个数是否能整除其他数
if (primeFlags[i]) {
for (int j = i * i; j <= upperBound; j += i) { // 如果能,则后续的数都不是素数
primeFlags[j] = false;
}
}
}
// 保存素数到数组prime[]
int[] prime = new int[(int)Math.ceil((double)(upperBound - lowerBound + 1) / 10)];
int count = 0;
for (int i = lowerBound; i <= upperBound; i++) {
if (primeFlags[i]) {
prime[count++] = i;
if (count % 10 == 0 || i == upperBound) { // 每打印10个素数换行
System.out.println(Arrays.toString(prime.subarray(0, count)));
count = 0;
}
}
}
}
}
```
这个程序首先创建了一个布尔数组`primeFlags`来表示2到`upperBound`范围内的每个数是否为素数,然后通过埃拉托斯特尼筛法筛选出素数。最后,它将找到的素数存储在一个数组`prime`中,并按每10个数一组输出。
阅读全文