import java.util.Scanner;
public class B1013_2 { /*求素数表第m到第n个中间的所有素数*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int M = in.nextInt();
int N = in.nextInt();
boolean []num = new boolean[10001];
for (int x = 1; x < 10001; x++) /* num[1] ~ num[10001] 均不是质数*/
{
num[x] = true;
}
int []prime = new int[N+1];/*若是N,则不到27, 27越界了,所以N+1 */
int z = 0;
for (int i = 2; i < 10001; i++) /*把小于10000的素数都求了一遍*/
{
if (num[i] == true) /*是质数*/
{
prime[z++] = i; /*若是prime[i] = i z是第几个质数*/
if (z > N)
{
break;
}
for (int j = i + i; j < 10001; j += i) /*筛掉它的所有倍数*/
{
num[j] = false; /*不是质数*/
}
if (z >= M && z <= N)
{
if ((z-M+1) % 10 > 0 && z != N)
{
System.out.print(prime[z] + " ");
}
else if ( z % 10 == N)
{
System.out.print(prime[z]);
}
else
{
System.out.print(prime[z]);
System.out.print("\n");
}
}
}
}
in.close();
}
}
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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