码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-10-06 18:28:36      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:ase   style   表示   sel   end   记录   hit   实现   als   

题目来源

令 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

标签:ase   style   表示   sel   end   记录   hit   实现   als   

原文地址:https://www.cnblogs.com/47Pineapple/p/11627711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!