题目描述
令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
代码
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;
int
main(){
int
m, n;
cin >> n >> m;
int
j =
2
;
int
i =
1
;
int
t =
2
;
int
p[
10001
];
p[
0
] =
2
;
int
count =
0
;
for
(j =
2
; count <=m; j++){
for
(t =
2
; t <= (
int
)sqrt(j); t++)
if
(j%t ==
0
){
break
;
}
if
(j%t !=
0
) {
p[i] = j;
i++;
count++;
}
}
int
N =
0
;
for
(
int
a = n-
1
; a<m;a++)
{
N++;
if
(N %
10
==
0
|| a == m -
1
)
printf(
"%d"
, p[a]);
else
printf(
"%d "
, p[a]);
if
(N %
10
==
0
)
printf(
"\n"
);
}
return
0
;
}