总时间限制: 
1000ms

内存限制: 
65536kB
描述

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

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

一定要注意范围范围范围!!!!
开数组一定要注意!!!!!!
第一次很装逼的用了结构体,毕竟是会的东西之一,结果:
Runtime Error
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define M 10001 using namespace std;
int n;
struct Q{
int top;
int s[M];
void jiajia()
{
top++;
}
int add(int x)
{
s[top]=x;
}
Q()//初始化
{
top=;
}
}q; int pd(int x)
{
if(x==||x==) return ;
if(x%== || x==) return ;
int j=;
while(j<=sqrt(x)&&x%j!=) j+=;
if(x%j==) return ;
else return ;
} void Q_work()
{
q.jiajia();
q.add();
for(int i=;;i++)
{
if(pd(i))
{
q.jiajia();
q.add(i);
}
if(q.top>)
break;
}
} int main()
{
scanf("%d",&n);
Q_work();
cout<<q.s[n];
return ;
}

1

吓的我赶紧改掉结构体里面的初始化,样例过了???

交上:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define M 10001 using namespace std;
int n;
struct Q{
int top;
int s[M];
void jiajia()
{
top++;
}
int add(int x)
{
s[top]=x;
}
}q; int pd(int x)
{
if(x==||x==) return ;
if(x%== || x==) return ;
int j=;
while(j<=sqrt(x)&&x%j!=) j+=;
if(x%j==) return ;
else return ;
} void Q_work()
{
q.jiajia();
q.add();
for(int i=;;i++)
{
if(pd(i))
{
q.jiajia();
q.add(i);
}
if(q.top>)
break;
}
} int main()
{
scanf("%d",&n);
Q_work();
printf("%d",q.s[n]);
return ;
}

2

还是不对???

然后删掉结构体:

A了……

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define M 10001 using namespace std; int n,top;
int s[M]; int pd(int x)
{
if(x==||x==) return ;
if(x%== || x==) return ;
int j=;
while(j<=sqrt(x)&&x%j!=) j+=;
if(x%j==) return ;
else return ;
} void Q_work()
{
s[++top]=;
for(int i=;;i++)
{
if(pd(i))
{
s[++top]=i;
i++;
}
if(top>)
break;
}
} int main()
{
scanf("%d",&n);
Q_work();
printf("%d",s[n]);
return ;
}

3

然而想不通的是:为什么不能使用结构体??

赶紧请教大佬,结果出人意料的错误出现了,详细请看代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
//#define M 10001就是这里!!数组开小了应该再加一!!!
#define M 10002 using namespace std; int n; struct Q{
int top;
Q()
{
top=;
}
int s[M];
void jiajia()
{
top++;
}
int add(int x)
{
s[top]=x;
}
}q; int pd(int x)
{
if(x==||x==) return ;
if(x%== || x==) return ;
int j=;
while(j<=sqrt(x)&&x%j!=) j+=;
if(x%j==) return ;
else return ;
} void Q_work()
{
q.jiajia();
q.add();
for(int i=;;i++)
{
if(pd(i))
{
q.jiajia();
q.add(i);
}
if(q.top>) //因为结束条件是q.top>10000所以需要使用到10001个,所以数组需要开到10002
//if(q.top>=10000) 或者上面不改,改这里
break;
}
} int main()
{
scanf("%d",&n);
Q_work();
printf("%d",q.s[n]);
return ;
}

4

End.

noi 第n小的质数的更多相关文章

  1. NOI 1.5 44:第n小的质数

    ---恢复内容开始--- 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 方法1:合数一定可以表示成一个比它小的 ...

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

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

  3. 39:第n小的质数

    39:第n小的质数    总时间限制:    1000ms    内存限制:    65536kB描述    输入一个正整数n,求第n小的质数.输入    一个不超过10000的正整数n.输出    ...

  4. 第n小的质数

    总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 代碼 ...

  5. NOI 2009A 诗人小G

    NOI 2009A 诗人小G 诗人小G [问题描述] 小G是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们 ...

  6. [BZOJ 1563] [NOI 2009] 诗人小G(决策单调性)

    [BZOJ 1563] [NOI 2009] 诗人小G(决策单调性) 题面 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并放在一行中,注意一行中可以放的句子数目是没有限制的.小 G ...

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

    #include<iostream>#include<cmath>using namespace std;int main(){ int n; cin>>n; in ...

  8. NOI 2009 诗人小G

    题目描述 Description 小G是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并放在一行 ...

  9. java小程序 质数

    package com.test; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; im ...

随机推荐

  1. numpy数组常用计算

    在说numpy库数组的计算之前先来看一下numpy数组形状的知识: 创建一个数组之后,可以用shape来查看其形状,返回一个元组 例如:a = np.array([[1, 2, 3], [4, 5, ...

  2. AC自动机fail树上dfs序建线段树+动态memset清空

    题意:http://acm.hdu.edu.cn/showproblem.php?pid=4117 思路:https://blog.csdn.net/u013306830/article/detail ...

  3. Beautifulsoup模块基础用法详解

    目录 Beautifulsoup模块 官方中文文档 介绍 基本使用 遍历文档树 搜索文档树 五种过滤器 **find_all( name , attrs , recursive , text , ** ...

  4. LeetCode 328——奇偶链表(JAVA)

    给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 O(1),时 ...

  5. 电脑无法上网,DNS出现fec0:0:0:ffff::1%1问题

    具体描述:qq,微信可用网,但其他不能用. 一.win+r 输入cmd 打开命令行:ipconfig /all 查看DNS 二.打开文本编辑器,输入如下文本: @Echo onpushd\window ...

  6. Ubuntu下多个gcc版本之间的切换

    Ubuntu下多个gcc版本之间的切换 1.查看当前系统的gcc版本 gcc -v 会输出以下信息: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO ...

  7. Python---virtualenv + Tensorflow + 安装jupyter notebook

    一.ubuntu系统下安装完caffe后,安装 jupyter notebook. 在终端中执行,安装指令: sudo pip install jupyter 安装完成后运行 notebook : j ...

  8. 01.CNN调参

    转载:调参是个头疼的事情,Yann LeCun.Yoshua Bengio和Geoffrey Hinton这些大牛为什么能够跳出各种牛逼的网络? 下面一些推荐的书和文章:调参资料总结Neural Ne ...

  9. Ubuntu系统--安装官方flash插件包的方法

    浏览器安装官方install_flash_player_npapi_linux.x86_64.tar.gz插件包的方法 第一步:下载安装包. adobe flash player的官方下载instal ...

  10. python : import详解。

    用户输入input() input()函数: 用于从标准输入读取数值. >>> message = input('tell me :') tell me :hahah >> ...