PAT 乙级 1013.数素数 C++/JAVA

Posted 47pineapple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 乙级 1013.数素数 C++/JAVA相关的知识,希望对你有一定的参考价值。

题目来源

令 P?i?? 表示第 i 个素数。现任给两个正整数 MN10?4??,请输出 P?M?? 到 P?N?? 的所有素数。

输入格式:

输入在一行中给出 M 和 N,其间以空格分隔。

输出格式:

输出从 P?M?? 到 P?N?? 的所有素数,每 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 - PN的素数都求出来,即:记录素数的个数count,当count等于第PN的时候,循环结束

 

C++实现

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 
 6 bool isprime(int n)
 7 
 8     for (int i = 2; i * i <= n; ++i)
 9     
10         if (n % i == 0)
11         
12             return false;
13         
14     
15     return true;
16 
17 
18 int main()
19 
20     int num = 2, N, M;
21     int count = 0;    //记录素数个数
22     vector<int> v;
23     cin >> M >> N;
24 
25     while (count < N)
26     
27         if (isprime(num))
28         
29             ++count;
30             if (count >= M)
31             
32                 v.push_back(num);
33             
34         
35         ++num;
36     
37 
38     count = 0;
39     for (int i = 0; i < v.size(); ++i)
40     
41         ++count;    //控制输出行数
42         if (count % 10 != 1)
43         
44             cout << " ";
45         
46         cout << v[i];
47         if (count % 10 == 0)
48         
49             cout << endl;
50         
51     
52 
53 
54     return 0;
55 

 

以上是关于PAT 乙级 1013.数素数 C++/JAVA的主要内容,如果未能解决你的问题,请参考以下文章

PAT 乙级 1013

PAT乙级 1013. 数素数 (20)

PAT-乙级-1013 数素数

PAT 乙级 1013. 数素数 (20)

PAT乙级1013 数素数 (20 分)

[PAT乙级]1013 数素数