📄 prime.java
字号:
import java.io.*;
class Prime{
private int [] a;
Prime(int n){
a = new int[n<1?1:n];
}
/*
对该程序,计算的最佳方法是:
因为每个非素数都可分解为素数的乘积,故从已经获得的Prime数组里取出各个数来看是否
能被test整除,同时满足取出的数字不比test的平方根的ceil大,这是最快的方法,最大限
度的删除了不必要的测试数字
*/
void getPrimeNumber(){
a[0]=2;
for(int test=3,numOfN=1;numOfN<=a.length-1;test+=2){
int p=3,temp=(int)Math.ceil(Math.sqrt(test));
for(;p<=temp&&test%p!=0;p+=2);
if(p>temp)
a[numOfN++]=test;
}
}
void printPrimeNumber(){
for(int i=1;i<=5;i++){
if(i>a.length)
break;
System.out.println("-"+i+"- "+a[i-1]);
}
if(a.length>10)
System.out.println("...");
for(int i=a.length-4;i<=a.length;i++){
if(i<6)
continue;
System.out.println("-"+i+"- "+a[i-1]);
}
String n_th;
switch(a.length){
case 1 : n_th="first";break;
case 2 : n_th="second";break;
case 3 : n_th="third";break;
default : n_th=Integer.toString(a.length)+"-th";
}
System.out.println("The "+n_th+" prime number is "+a[a.length-1]+".");
}
public static void main(String [] args){
if(args.length==0){
System.out.println("You should supply an argument that indicates the count of prime number");
System.out.println(System.err);
System.exit(0);
}
Prime prime = new Prime(Integer.parseInt(args[0]));
prime.getPrimeNumber();
prime.printPrimeNumber();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -