设计JAVA application程序,计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件,
以下是一个使用Java语言编写的程序,可以计算出20000000~300000000之间所有的素数,并将找到的素数写入primefile.dat文件:
javaCopy code
import java.io.FileOutputStreamimport java.io.IOExceptionpublic class PrimeNumberCalculator { public static void main(String[] args) { int start = 20000000int end = 300000000String filename = "primefile.dat"try (FileOutputStream fileOutputStream = new FileOutputStream(filename)) { for (int i = starti <= endi++) { 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 = 2i <= 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"语句来自动关闭文件输出流。这样可以确保即使在发生异常的情况下,文件输出流也会被正确关闭,以避免文件被损坏。
实现代码如下:
Student类:
public class Student {
private String name
private String sex
private int age
private double chinese
private double math
private double english
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public String getSex() {
return sex
}
public void setSex(String sex) {
this.sex = sex
}
public int getAge() {
return age
}
public void setAge(int age) {
this.age = age
}
public double getChinese() {
return chinese
}
public void setChinese(double chinese) {
this.chinese = chinese
}
public double getMath() {
return math
}
public void setMath(double math) {
this.math = math
}
public double getEnglish() {
return english
}
public void setEnglish(double english) {
this.english = english
}
}
-----------------------------------------------------------------
StudentTest类:(测试类)
import java.util.Scanner
public class StudentTest {
public static void main(String[] args) {
Student student = new Student()
Scanner sc = new Scanner(System.in)
System.out.println("请输入姓名:")
student.setName(sc.next())
System.out.println("请输入性别:")
student.setSex(sc.next())
System.out.println("请输入年龄:")
student.setAge(sc.nextInt())
System.out.println("请输入语文成绩、数学成绩、英语成绩:")
student.setChinese(sc.nextDouble())
student.setMath(sc.nextDouble())
student.setEnglish(sc.nextDouble())
Double count = student.getChinese()+ student.getMath()+student.getEnglish()
System.out.println("姓名:"+student.getName()+" 性别:"+student.getSex()+" 年龄:"+student.getAge())
System.out.println("总分:"+count+" 平均分:"+count/3)
}
}
运行结果为:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)