题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。
输入描述:
输入在一行中给出M和N,其间以空格分隔。
输出描述:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入例子:
5 27
输出例子:
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103
我的代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int m=in.nextInt();
int n=in.nextInt();
int a=104800;//在1-a之间有10006个素数
int s=0;
int arr[]=new int[11000];
for(int i=2;i<=a;i++){
if(sushu(i)){
arr[s++]=i;//把素数赋值给数组arr[];
}
}
// for(int i=0;i<10000;i++)
// System.out.println(arr[i]);一万个素数
for(int i=m;i<n;i++){
if((i-m+1)%10==0){
System.out.print(arr[i-1]);
System.out.println("");
}
else
System.out.print(arr[i-1]+" ");
}
System.out.print(arr[n-1]);
}
//判断是否为素数的方法
private static boolean sushu(int n) {
for (int i = 2; i <=Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}