题目描述
令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.*;
public class Main {
public static void main(String[] args) {
final int N = 10000;
int[] prime = new int[N];
boolean bool;
int cnt = 0;
prime[cnt] = 2;
for (int i = 3;; i += 2) {
bool = true;
for (int j = 2; j <= Math.sqrt(i); ++j) {
if (i % j == 0) {
bool = false;
break;
}
}
if (bool) {
++cnt;
prime[cnt] = i;
}
if (cnt == (N - 1))
break;
}
int pm = 0;
int pn = 0;
int mark = 0;
Scanner in = new Scanner(System.in);
pm = in.nextInt();
pn = in.nextInt();
for (; pm < pn; ++pm) {
++mark;
if (mark % 11 != 0)
{
if(mark%10!=0)
System.out.print(prime[pm-1]+" ");
else
{
System.out.println(prime[pm-1]);
mark=0;
}
}
}
System.out.print(prime[pn-1]);
}
}