第n小的质数

总时间限制: 
1000ms

内存限制: 
65536kB
描述

输入一个正整数n,求第n小的质数。

输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29

代碼實現:

 1 #include<cstdio>
 2 int n,a,s[130030];
 3 bool v[130030];
 4 int main(){
 5     for(int i=2;i<=110000;i++){
 6         if(!v[i]){
 7             a=2*i;s[++s[0]]=i;
 8             while(a<=110000){v[a]=1;a+=i;}
 9         }
10     }
11     scanf("%d",&n);
12     printf("%d\n",s[n]);
13     return 0;
14 }

。。。

时间: 2024-10-10 13:50:05

第n小的质数的相关文章

NOI 1.5 44:第n小的质数

---恢复内容开始--- 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 方法1:合数一定可以表示成一个比它小的质数的几倍,所以若一个数不能整除比它小的所有的质数,则这个数是质数.所以,若要找第n个质数,则可以第n-1个质数为起点开始,通过上述方法判断. 1 #include<iostream> 2 using namespace std; 3 int n,s; 4 int p[10001]; 5 int

39:第n小的质数

39:第n小的质数    总时间限制:    1000ms    内存限制:    65536kB描述    输入一个正整数n,求第n小的质数.输入    一个不超过10000的正整数n.输出    第n小的质数.样例输入    10样例输出    29 方法一:老实枚举计数寻找到第n个质数然后输出. 1 #include<stdio.h> 2 #include<math.h> 3 int main(int argc, char *argv[]) 4 { 5 long i,n,co

NOI 1.5编程基础之循环控制 44:第n小的质数

描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29

1.5编程基础之循环控制44:第n小的质数

#include<iostream>#include<cmath>using namespace std;int main(){ int n; cin>>n; int tot=0; for(int i=2;i<=1000009;i++) { int flag=1; for(int j=2;j<=sqrt(i);j++) { if(i%j==0&&i!=j) { flag=0; break; } } if(flag==1) { tot++; }

质数筛法详解

理论及实现 定义: 若一个正整数无法被除了1和它本身的之外的任何自然数整除,则称该为质数(素数),否则称该正整数为合数. 判定方法 试除法 引理: 若一个正整数\(N\)为合数,则存在一个能整除\(N\)的数\(T\)且\(2≤T≤ \sqrt N\) 证明就不再赘述,读者可以自行验证: 因此,我们只需要枚举\(2-\sqrt N\).只要这之中的所有数都不能被\(N\)整除,那么\(N\)就是质数了: #include<cmath> bool is_prime(int n) { if(n &

公主招驸马,已知积为7140229933,求两个质数

漂亮的公主要招驸马了,最后几个参加决赛的人都是才高八斗英俊潇洒的的精英人才,难分高下,公主犹豫不决,最后皇帝出了一道编程题,最先把结果计算出来的可以做驸马,题目如下:公主的微信号是:英文开头是公主的姓:li,后面跟着两个质数,较小的质数在前面,较大的质数在后面,组成了公主的微信号,这两个质数相乘的积是7140229933,最先得到正确的微信号并申请加入公主的微信就是驸马啦! 源代码如下: #include<stdio.h>#define N 7140229933void main(){ int

如何判断素数

在OI与密码学等各个方面,我们经常会遇到需要判断素数的情况.这个问题看似简单,实则不然.判素就像是排序,只会快排是不能走遍天下的,想要成为一名神犇,就需要接触更多的算法. 一:什么是素数 素数,也可以叫做质数.如果一个大于1的自然数,除去1和他本身,不能被其他数字整除,那么他就是一个素数.任何一个大于1的自然数,要么是素数,要么是可以写做一堆素数相乘. 二:素数的性质 (1)质数p的约数只有两个:1和p. (2)初等数学基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且

【专题】素数的判定与筛法

素数的判定与筛法     判定:很简单嘛!暴力大法参上! #include<iostream> #include<cmath> unsigned long int n,i,j,a,b; using namespace std; int main() { cin>>n; j=(int)sqrt(n); for(i=2;i<=j;i++) if(n%i==0) break; if(i>j&&n!=0&&n!=1) cout<

Count Primes

package cn.edu.xidian.sselab.hashtable; /** *  * @author zhiyong wang * title: Count Primes * content: * Description: *  * Count the number of prime numbers less than a non-negative number, n. * */public class CountPrimes { //自己想出来的,不过有几个地方一开始出错了:(1)