PAT 1013 数素数
代码如下:
package test;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int M=in.nextInt();
int N=in.nextInt();
outputPrimeNumber(M,N);
in.close();
}
// 输出素数
public static void outputPrimeNumber(int M,int N) {
int[] primeNumbers=new int[10000];
doArray(primeNumbers);
int j=1;
for(int i=M-1;i<N;i++) {
if(i==N-1) {
System.out.print(primeNumbers[i]);
}else {
if(j%10==0) {
System.out.print(primeNumbers[i]+"\n");
j=1;
}else {
System.out.print(primeNumbers[i]+" ");
j++;
}
}
}
}
// 判断是否是素数
public static boolean isPrimeNumber(int n) {
for(int i=2;i<=(int)Math.sqrt(n);i++) {
if(n%i==0) {
return false;
}
}
return true;
}
// 为指定数组赋值素数
public static void doArray(int[] arr) {
int j=2;
for(int i=0;i<arr.length;i++) {
for(int m=j;;m++) {
if(isPrimeNumber(m)) {
arr[i]=m;
j=m+1;
break;
}
}
}
}
}