PAT乙级.1013.数素数

令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
 1 #include <iostream>
 2 #include <cmath>
 3 #define N 10000
 4 using namespace std;
 5 
 6 
 7 int main()
 8 {
 9     int num[N] = { 0 };
10     num[0] = 2;
11     int i, j=0, flag = 0;
12     int m, n;
13     cin >> m>> n;
14     for (i = 3; j<n; i++) { // j 记录素数的个数 
15         for (j = 0; num[j] != 0; j++) {
16             if (i % num[j] == 0) {
17                 break;
18             }
19             else if (num[j + 1] == 0) {
20                 num[j+1] = i;
21                 break;
22             }
23         } //for j
24 
25     } //for i
26 
27     for (int i = m - 1; i < n; i++) {
28         if (flag == 0) {
29             cout << num[i];
30             flag++;
31         }
32         else if (flag != 0 && flag < 9) {
33             cout << " " << num[i];
34             flag++;
35         }
36         else if (flag == 9) {
37             cout << " " << num[i] << endl;
38             flag = 0;
39         }
40 
41     }
42     system("pause");
43     return 0;
44 }

 

posted @ 2018-04-08 10:30  JHDCJH  阅读(105)  评论(0编辑  收藏  举报