用java写一个程序?

设计JAVA application程序,计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件,

JAVA程序计算素数
设计JAVA application程序,计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件,
以下是一个使用Java语言编写的程序,可以计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件:
javaCopy code
import java.io.FileOutputStream; import java.io.IOException; public class PrimeNumberCalculator { public static void main(String[] args) { int start = 20000000; int end = 300000000; String filename = "primefile.dat"; try (FileOutputStream fileOutputStream = new FileOutputStream(filename)) { for (int i = start; i <= end; i++) { if (isPrime(i)) { fileOutputStream.write(String.valueOf(i).getBytes()); fileOutputStream.write(System.lineSeparator().getBytes()); } } } catch (IOException e) { e.printStackTrace(); } } private static boolean isPrime(int n) { if (n <= 1) { return false; } for (int i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { return false; } } return true; } }
该程序首先定义了起始数字和终止数字,以及文件名。接下来,在main方法中,程序使用for循环迭代从start到end之间的每个数字。对于每个数字,程序调用isPrime方法来判断它是否为素数。如果是素数,程序将该数字写入文件中,每个数字占一行。
isPrime方法使用了一个简单的算法来判断一个数字是否为素数:如果数字小于或等于1,那么它不是素数。否则,程序从2开始,一直到该数字的平方根之间的每个数字进行除法运算。如果该数字能被任何一个这些数字整除,那么它不是素数。
请注意,在此程序中,我们使用了Java 7引入的"try-with-resources"语句来自动关闭文件输出流。这样可以确保即使在发生异常的情况下,文件输出流也会被正确关闭,以避免文件被损坏。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-12-08
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class PrimeNumberFinder {
public static void main(String[] args) {
// 设置范围
int start = 20000000;
int end = 300000000;
// 用于写入文件的 BufferedWriter
BufferedWriter writer = null;
try {
// 初始化 BufferedWriter
writer = new BufferedWriter(new FileWriter("primefile.dat"));
// 遍历范围内的所有数字
for (int i = start; i <= end; i++) {
// 如果这个数字是素数,写入文件
if (isPrime(i)) {
writer.write(String.valueOf(i));
writer.newLine();
}
}
} catch (IOException e) {
// 如果出现 IOException,输出错误信息
e.printStackTrace();
} finally {
// 最后关闭 BufferedWriter
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// 判断一个数字是否为素数
public static boolean isPrime(int n) {
// 对于小于 2 的数字,直接返回 false
if (n < 2) {
return false;
}
// 从 2 开始遍历到 n-1,如果能被 n 整除,则返回 false
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
// 如果执行到这里,说明没有小于 n 的数字能被 n 整除,返回 true
return true;
}
第2个回答  2022-12-06

第3个回答  2022-12-05
JAVA是一门编程需要,可以写程序,主要用于服务端