1181 质数中的质数(质数筛法)

题目来源: Sgu

基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题

如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。

Input

输入一个数N(N <= 10^6)

Output

输出>=N的最小的质数中的质数。

Input示例

20

Output示例

31

  最常见的筛法是筛去素数的倍数,但很显然这样会大量重复筛去相同的元素(虽然比筛去整数的倍数好)。而由合数的定义可以看出,合数必然有复数个数的素因子,我们只需要在第一个素因子处判断即可,否则会重复。

  而这道题需要在筛法的基础上加一次判断。

  【思路来自http://blog.csdn.net/morewindows/article/details/7347459】

//代码如下

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
bool su[100000000];
int shu[2000500],shusu[2000500];
int shai(int a){
int i=2,j,k=1,l=1;
while(shusu[l-1]<a){
if(!su[k-1]&&shusu[l-1]!=shu[k-1])
shusu[l++]=shu[k-1];
if(!su[i]) shu[k++]=i;
for(j=1;j<=k&&i*shu[j]<=a*10;j++)
{
su[i*shu[j]]=true;
if(i%shu[j]==0) break;
}
i++;
}
l--;
return l;

}
int main()
{
int n;
cin>>n;
// for(int i=1;i<=shai(n);i++) cout<<shusu[i]<<" ";
cout<<shusu[shai(n)]<<endl;
return 0;
}

转载于:https://www.cnblogs.com/wengsy150943/p/5767499.html

改进筛法- 质数中的质数(质数筛法)相关推荐

  1. 1181 质数中的质数(质数筛法)

    如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用 ...

  2. P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)

    P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...

  3. 【数论】质数筛选法(埃拉托色尼筛法及线性筛法)

    质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 在编程中,有时我们会遇到要找出一个整数范围内所有质数的情况,如果该范围很大,逐个判定该范围内所有数是否为质数(找出它是否能被大于 ...

  4. 质数 AcWing 868. 筛质数 线性筛

    质数 AcWing 868. 筛质数 原题链接 AcWing 868. 筛质数 算法标签 数学知识 质数 线性筛法筛法求素数 思路 线性筛,保证每个合数只被最小素因子筛掉 (1)当i%primes[j ...

  5. 【数论】 质数知识总结(质数判断、筛选、质因子分解、互质)

    文章目录 一.定义 二.质数的判断 三.质数的筛选 四.质因子分解 五.互质 一.定义 质数,又称素数,若一个正整数无法被除了1和它自身以外的其它数整除,则称其为质数,否则为合数.特殊地,1既不是合数 ...

  6. 素数筛法(传统普通、朴素筛法、埃式筛法、欧拉筛法(线性筛))

    素数筛法(普通.朴素筛法.埃式筛法.欧拉筛法) 1.题目 2.分析 3.代码 传统普通 朴素筛法 朴素筛法(6.14) 埃式筛法 埃式筛法(6.14) 欧拉筛法(线性筛) 欧拉筛法(线性筛 6.14) ...

  7. 埃拉托色尼筛选法巧解质数问题(埃氏筛法求解素数问题)

    背景: 素数(即质数)问题是老问题了,程序员面试问题,大小比赛的热门题. 比如 最简单的判断素数问题,或者计算素数的个数,等等. 简单的判断素数函数: 素数的定义:指在大于1的整数中,只能被1和它本身 ...

  8. 筛法求10000以内的质数

    #include<stdio.h> #define N 10000 int main() { int i,j,a[N]; for(i=2;i<N;i++) a[i]=1; for(i ...

  9. 【数论知识】1:和1-n中的所有质数有关的算法(朴素版+升级版)

    1.给定n,求出1~n中质数的个数 可以先记一下结论 是一个数学界推出来的,不知道为什么,记住就行 1-N里面有N/lnN个质数 朴素筛法(埃氏) 思想是用每个质数去筛除以它为约数的合数. 每个质数都 ...

最新文章

  1. 【Python】利用 pytesseract 识别图片中的数字
  2. 杭电1232畅通工程
  3. Decode Ways leetcode java
  4. 深入Go的底层,带你走近一群有追求的人
  5. 云上城之个服务器维护时间,云上城之歌寒冬边界开服时间表_云上城之歌新区开服预告_第一手游网手游开服表...
  6. 阿里云天池 Python训练营Task3: Python基础进阶:从函数到高级魔法方法 学习笔记
  7. 设置行间距_word打印技巧:几个节省纸张的打印设置方法
  8. mybaties中的selectKey和useGeneratedKeys=true
  9. Linux下载Java包,Linux环境Java包的安装和环境配置
  10. FPGA与ASIC对比
  11. 可禁用计算机服务,哪些Microsoft服务项目可以禁用以提高 电脑速度
  12. 悲!企业软件被360误认木马病毒!
  13. python 常用股票走势图绘制
  14. 网络:七层,HTTP应用层、TCP传输层、IP网络层,拔网线TCP还在,三次握手保证双向与减少因延时传输错误
  15. 反应式流 Java 9 Flow实战
  16. usercity 小程序_微信小程序API 用户信息
  17. android 开发从入门到精通
  18. css图片渐变透明效果
  19. tomcat报错405
  20. 从零开始学习STM32(一)—— 新建工程模板

热门文章

  1. python考级证书-Python 全国考级二级
  2. python3-Python3.7.0官方版
  3. python贴吧爬虫-Python 爬虫练习: 爬取百度贴吧中的图片
  4. python的工作方向-Python的就业的方向和前景
  5. python 数据分析学什么-python数据分析学什么?python数据分析入门
  6. python百度百科api-Python即时网络爬虫:API说明
  7. python三层装饰器-python三大神器===》装饰器
  8. python语言特点有哪些-python的优点和缺点是什么?
  9. python英语翻译-python制作英语翻译小工具代码实例
  10. python安装modify setup选哪-python 之禅 import this