码迷,mamicode.com
首页 > 其他好文 > 详细

PAT乙级题库“傻瓜”题解之数素数

时间:2019-11-12 21:41:38      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:include   namespace   ios   div   details   return   out   turn   std   

P?i?? 表示第 i 个素数。现任给两个正整数 MN10的四次方,请输出 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 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int min,max;
 6     cin>>min>>max;
 7     long sushu[105000];//用来存素数的数组
 8     int n=max-min;//要输出素数的个数
 9     int k=0;//素数数组的下角标
10     int m=0;//用来判断输出的格式
11     for(int i=2;i<=105000;i++)
12     {
13         int flag=-1;
14         for(int j=2;j*j<=i;j++) 
15         {
16             if(i%j==0)
17             {
18                 flag=1;
19                 break;
20             }
21         }
22         if(flag==-1)//到这里是对素数的判断
23         {
24             sushu[k]=i;
25             if(k>=min&&k<=max)//这里是对要输出的素数的判断
26             {
27                 m++;
28                 cout<<sushu[k-1];
29                 if(m%10==0) cout<<endl;
30                 else if(m-1!=n) cout<<" ";
31             }
32             k++;     
33         }
34         if(k-1==max) break;//退出外层遍历范围内的数的循环
35     }
36     return 0;
37 }

个人认为这道题的考点主要是在第四个测试点:

1、当N等于10的4次方时,你的用来存素数的数组应该给多少个内存;

2、你用什么方法来判断一个数是素数,如果用的方法不对,会使运行超时,这就涉及到素数的定义和性质了:https://blog.csdn.net/zlambert/article/details/65684470

PAT乙级题库“傻瓜”题解之数素数

标签:include   namespace   ios   div   details   return   out   turn   std   

原文地址:https://www.cnblogs.com/solititude/p/11845470.html

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