用Java实现以下描述:求出2~200之间的所有素数,将求得的结果保存到PRIME.DAT文件中。
时间: 2023-09-19 22:06:04 浏览: 106
### 回答1:
首先,我们需要了解什么是素数。素数是指大于1的自然数,且除了1和它本身以外,无法被其他自然数整除的数。
下面是一个用Java实现求2~200之间素数的程序示例:
```
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class PrimeNumbers {
public static void main(String[] args) {
// 定义文件输出流
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("PRIME.DAT"));
// 循环枚举2~200之间的数
for (int i = 2; i <= 200; i++) {
// 判断是否为素数
boolean isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
// 如果是素数,写入文件
if (isPrime) {
bw.write(i + "\n");
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭文件输出流
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
上面的程序使用了文件输出流(FileWriter)和缓冲流(BufferedWriter)来将结果写入文件。首先,使用for循环枚举2~200之间的数,然后使用另一个for循环判断每个数是否为素数。如果是素数,就使用BufferedWriter的write()方法将其写入文件。最后,使用finally块关闭文件输出流,以确保程序的正常执行。
### 回答2:
以下是用Java实现求出2~200之间的所有素数并保存到PRIME.DAT文件中的代码:
```java
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
public class PrimeNumbers {
public static void main(String[] args) {
int start = 2;
int end = 200;
String filePath = "PRIME.DAT";
try {
// 创建文件写入器
FileWriter fileWriter = new FileWriter(filePath);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// 循环判断2~200之间的所有数是否为素数,将素数保存到文件中
for (int num = start; num <= end; num++) {
if (isPrime(num)) {
bufferedWriter.write(num + " ");
}
}
// 关闭写入器
bufferedWriter.close();
} catch (IOException e) {
System.out.println("写入文件出错:" + e.getMessage());
}
System.out.println("素数已保存到" + filePath);
}
// 判断一个数是否为素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
// 判断是否有能整除num的数
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
```
以上代码使用了 `FileWriter` 和 `BufferedWriter` 来将素数保存到文件中。在 `isPrime` 方法中,通过判断是否有能整除 `num` 的数,来判断 `num` 是否为素数。输出结果会显示素数已保存到 `PRIME.DAT` 文件中。
### 回答3:
Java提供了一个判断素数的方法,我们可以使用这个方法来实现这个要求。
首先,我们需要一个判断素数的函数,可以定义一个`isPrime`方法来判断一个数是否为素数。接下来,我们定义一个存储素数的数组,用于保存求得的结果。
```java
import java.io.FileWriter;
import java.io.IOException;
public class PrimeNumbers {
public static void main(String[] args) {
int[] primeNumbers = new int[100]; // 存储素数的数组
int count = 0; // 记录素数的个数
for (int i = 2; i <= 200; i++) {
if (isPrime(i)) {
primeNumbers[count] = i;
count++;
}
}
try {
FileWriter writer = new FileWriter("PRIME.DAT"); // 创建文件写入流
for (int i = 0; i < count; i++) {
writer.write(primeNumbers[i] + "\n"); // 将素数写入文件
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("素数已保存到 PRIME.DAT 文件中。");
}
// 判断是否为素数
public static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
```
在上面的代码中,我们使用一个循环从2到200遍历所有的数字,对每个数字调用`isPrime`方法判断是否为素数。如果是素数,则将其保存到`primeNumbers`数组中,并将`count`自增1。
最后,我们创建一个`FileWriter`对象用于写入文件。使用循环将素数写入文件中,并关闭文件写入流。最后,打印出一条提示信息,表示素数已保存到`PRIME.DAT`文件中。
注意:请确保在运行程序之前,你的项目目录下已经创建了PRIME.DAT文件,否则会抛出文件未找到异常。