博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1181 质数中的质数
阅读量:6677 次
发布时间:2019-06-25

本文共 1230 字,大约阅读时间需要 4 分钟。

题目来源: 
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 
 收藏
 关注
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。
 
Input
输入一个数N(N <= 10^6)
Output
输出>=N的最小的质数中的质数。
Input示例
20
Output示例
31 法一、筛出质数后再筛质数中的质数
#include
#include
#define N 1001001using namespace std;int n,prime[N],cnt;bool v[N],g[N];int main(){ for(int i=2;i
N-1) break; v[i*prime[j]]=true; if(i%prime[j]==0) break; } } for(int i=1;i<=cnt;i++) g[prime[prime[i]]]=true; scanf("%d",&n); for(int i=n;i

法二、

#include
#include
#define N 1001001using namespace std;int n,prime[N],cnt;bool v[N],g[N];int main(){ for(int i=2;i
N-1) break; v[i*prime[j]]=true; if(i%prime[j]==0) break; } } scanf("%d",&n); int pos; pos = upper_bound( prime, prime + cnt, n - 1 ) - prime; //第一个大于等于n的质数的编号,也就是自pos以后的质数,都满足题目>=n的要求 pos = upper_bound( prime, prime + cnt, pos-1 ) - prime; //所以要找>=pos的质数,最小的在哪一个位置 printf( "%d\n", prime[prime[pos]] );}

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/6644361.html

你可能感兴趣的文章
.NET 中 Image 转 Icon
查看>>
因第三次月考而引起的
查看>>
数据库系统简介
查看>>
div高度自适应
查看>>
JS 实现百度搜索功能
查看>>
常用数据结构及复杂度
查看>>
poj3278 Catch That Cow
查看>>
IDEA调试方法总结及各种Step的区别
查看>>
简易图片轮播效果
查看>>
Spring Boot 数据库连接池 Druid
查看>>
Android学习笔记(十)——ListView的使用(上)
查看>>
NodeList对象的特点
查看>>
【转载】【原创】生命中,要有自己的一方晴天
查看>>
JQuery操作CheckBox和Radio
查看>>
快速求幂
查看>>
gulp初学
查看>>
JS设置localStorage有效期
查看>>
Ajax常用写法
查看>>
测试用例设计-WEB通用测试用例
查看>>
53、listview、expandableListview如何选中时保持高亮?
查看>>