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

 

Input
输入一个数N(N <= 10^6)
Output
输出>=N的最小的质数中的质数。

自己写的模拟版本
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e7;
bool s[maxn];
bool p[maxn];
int n;
void solve ()
{for(int i=1;i <= 1e6+10 ;i++) s[i] = 1;s[1] = 0;for(int i=2;i*i <= 1e6;i++){if( s[i] ){for(int j= i*i; j <= 1e6;j+=i ){s[j] = 0;}}}int cnt = 1;for(int i=1;i <= 1e6;i++) p[i] = s[i];for(int i=1;i <= 1e6;i++){if(s[i]){if(p[cnt] == 0)s[i] = 0;cnt++;}}/*for(int i=1;i <= 100;i++)printf("%d ",s[i]);printf("\n");*/}
int main ()
{scanf("%d",&n);solve();for(int i=n;i<=1e6;i++){if( s[i] ){printf("%d\n",i);break;}}return 0;
}

然后  网上搜索到一个比较好的方法

就是  把不是素数的都标记好

(注意以后素数打表的时候  还是要用long long 否则会爆int的

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+1000;
typedef long long ll;
bool s[maxn];
int n;int main (){//freopen("out.txt","w",stdout);scanf("%d",&n);int cnt = 1;s[1] = 1,s[2] = 0;for(ll i=2;i <= 1e6+500;i++){if(!s[i]){if(!s[cnt] && i >= n){printf("%d\n",i);break;}cnt++;for(ll j=i*i;j <= 1e6;j+=i){s[j] = 1;}}}return 0;
}

转载于:https://www.cnblogs.com/Draymonder/p/7345310.html

51NOD 1181 质数中的质数(质数筛法)相关推荐

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

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

  2. 改进筛法- 质数中的质数(质数筛法)

    1181 质数中的质数(质数筛法) 题目来源: Sgu 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数 ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. C语言实现埃拉托色尼筛选法(剔除数组中的非质数)

    质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法. 这个算法的第一步就是写下所有从2至某个上限之间的所有整数. 在算法的剩余部分,遍历整个列表并剔除所有不是质数的 ...

  10. JAVA中如何判断质数

    输入一个数判断它是否为质数 质数的定义为只能被自己和1整除的数且不等于1 方法一 System.out.println("请输入一个整数:"); int num = input.n ...

最新文章

  1. C# WinForm DataGridView单击选中一整行,只能单选
  2. elastic-job 的简单使用
  3. php redis与me m,Redis(十) —— 为php增加redis扩展
  4. ecshop清除mysql缓存_ECSHOP缓存清理关闭教程
  5. dubbo 支持服务降级吗_dubbo面试题!会这些,说明你真正看懂了dubbo源码
  6. 解决PD17虚拟机安装时出现 “操作失败 执行该操作失败”的方法
  7. airpods pro连接安卓声音小_airpods pro 麦克风声音小
  8. 树状数组萌新讲解+基础习题【一点一滴】
  9. mysql.createPool(db),Node.js中JavaScript操作MySQL的常用方法整理
  10. 台积电:无法回应检调中的案件,不评论单一客户特定订单
  11. 怎么checkout一个gerrit提交,完事之后再push
  12. data image转换图片php,PHP 将dataurl转成图片image方法总结
  13. 向量机和感知机的相同和不同点_感知机(perceptron)和支持向量机(svm)是一种东西吗? 如果不是那他们的区别和关系是什么?...
  14. centos安装pip失败:No package pip available.
  15. 腾讯云,搭建Git服务器
  16. 内存卡Android怎么删除,安卓手机怎么清理内置存储卡垃圾文件
  17. Gurub linux windows,windows10安装ubuntu双系统教程(绝对史上最详细)
  18. 解决Linux下无法利用shell脚本启动conda虚拟环境问题
  19. 员工每月工资数据集可视化分析
  20. 安河桥间奏为什么火_什么样的人会喜欢安和桥的间奏,初见的时,没想过后来会那么喜欢...

热门文章

  1. BGP选路规则和负载分担
  2. Leetcode 刷题笔记(二十九) ——动态规划篇之子序列问题:编辑距离
  3. 攻防世界-Misc-gif
  4. kickstart技术安装操作系统
  5. 微服务~Consul服务注册与发现
  6. Maven的核心笔记(3)常用命令、坐标和仓库
  7. BeX5开发中MySQL视图使用的一个小问题
  8. Linux IO模型漫谈(4)- 非阻塞IO
  9. 检查服务产生的core文件并做短信处理(shell)
  10. 深入PHP变量存储结构