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

令 P?i?? 表示第 i 个素数。现任给两个正整数 M≤N≤10的四次方,请输出 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

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

时间: 2024-10-10 12:48:17

PAT乙级题库“傻瓜”题解之数素数的相关文章

PAT乙级题库“傻瓜”题解之划拳

划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒.两人同赢或两人同输则继续下一轮,直到唯一的赢家出现. 下面给出甲.乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒. 输入格式: 输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为: 甲喊 甲划 乙喊 乙划 其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只

PAT乙级题库“傻瓜题解”之输出PATest

给定一个长度不超过 10?4?? 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出. 输入格式: 输入在一行中给出一个长度不超过 10?4?? 的.仅由英文字母构成的非空字符串. 输出格式: 在一行中按题目要求输出排序后的字符串.题目保证输出非空. 输入样例: redlesPayBestPATTopT

Openjudge-NOI题库-和为给定数

题目描述 Description 给出若干个整数,询问其中是否有一对数的和等于给定的数. 输入输出格式 Input/output 输入格式: 共三行: 第一行是整数n(0 < n <= 100,000),表示有n个整数. 第二行是n个整数.整数的范围是在0到10^8之间. 第三行是一个整数m(0 <= m <= 2^30),表示需要得到的和. 输出格式: 若存在和为m的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开.若有多个数对满足条件,选择数对中较小的数更小的.若找不

PAT乙级题:1003我要通过!

1 #include <iostream> 2 #include <string> 3 #include <vector> 4 #include <algorithm> 5 using namespace std; 6 //题目贼恶心,竟然没有说出A存在的规律!!!!! 7 //首先,必须要有PAT存在,且不能有其他字符 8 //其次P与T中间A的个数乘以P之前的个数==T之后的A的个数!!!!!!!!! 9 int main() { 10 int n; 1

1050. 螺旋矩阵(25) pat乙级题

本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”.所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条件:m*n等于N:m>=n:且m-n取所有可能值中的最小值. 输入格式: 输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数.所有数字不超过104,相邻数字以空格分隔. 输出格式: 输出螺旋矩阵.每行n个数字,共m行.相邻数字以1个空格分隔,行末不得有多余空格. 输入样例: 12 37 76 20 98 76 42 53 95

猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)

猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快速的开发过程中,如何保证代码的质量,降低后期维护的成本,以及为项目越来越快的版本迭代速度提供支持,成为了我们关注的重要问题.这篇文章将阐明我们在猿题库 iOS 客户端的架构设计. MVC MVC,Model-View-Controller,我们从这个古老而经典的设计模式入手.采用 MVC 这个架构的

PAT乙级(Basic Level)真题训练

写在前面:PAT冬季赛马上就要开始了!??这一次先报一个乙级冲鸭!我感Jio乙级里面还是有蛮多水题的,也有些题虽然看上去是水题,但是真正用代码实现起来的话会卡你那么一下,比如第5题数素数真的神打脸. 天上不会掉馅饼的,好好学习,努力奋斗才能梦想成真. 1. D进制的A + B(20) 题目描述: 输入两个非负10进制整数A和B(<= 230-1),输出A + B的D(1 <D <= 10)进制数. 输入描述: 输入在一行中依次给出3个整数A,B和D. 输出描述: 输出A + B的D进制数

PAT 乙级真题 1012.D进制的A+B

PAT 乙级真题 1012.D进制的A+B 题目描述 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式 输入在一行中依次给出3个整数A.B和D. 输出格式 输出A+B的D进制数. 输入样例 123 456 8 输出样例 1103 题目思路 #include<bits/stdc++.h> #define ll long long int using namespace std; int main() { ll a,b

PAT 乙级真题 1013.组个最小数

PAT 乙级真题 1013.组个最小数 题目描述 给定数字0-9各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意0不能做首位).例如: 给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558. 现给定数字,请编写程序输出能够组成的最小的数. 输入格式 每个输入包含1个测试用例.每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0.数字1.--数字9的个数.整数间用一个空 格分隔.10个数字的总个数不超过50,且至少拥有1个