51NOD 1181 质数中的质数(质数筛法)
输入一个数N(N <= 10^6)
输出>=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 质数中的质数(质数筛法)相关推荐
- 1181 质数中的质数(质数筛法)
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用 ...
- 改进筛法- 质数中的质数(质数筛法)
1181 质数中的质数(质数筛法) 题目来源: Sgu 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)
P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...
- 【数论】质数筛选法(埃拉托色尼筛法及线性筛法)
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 在编程中,有时我们会遇到要找出一个整数范围内所有质数的情况,如果该范围很大,逐个判定该范围内所有数是否为质数(找出它是否能被大于 ...
- 质数 AcWing 868. 筛质数 线性筛
质数 AcWing 868. 筛质数 原题链接 AcWing 868. 筛质数 算法标签 数学知识 质数 线性筛法筛法求素数 思路 线性筛,保证每个合数只被最小素因子筛掉 (1)当i%primes[j ...
- 【数论】 质数知识总结(质数判断、筛选、质因子分解、互质)
文章目录 一.定义 二.质数的判断 三.质数的筛选 四.质因子分解 五.互质 一.定义 质数,又称素数,若一个正整数无法被除了1和它自身以外的其它数整除,则称其为质数,否则为合数.特殊地,1既不是合数 ...
- 埃拉托色尼筛选法巧解质数问题(埃氏筛法求解素数问题)
背景: 素数(即质数)问题是老问题了,程序员面试问题,大小比赛的热门题. 比如 最简单的判断素数问题,或者计算素数的个数,等等. 简单的判断素数函数: 素数的定义:指在大于1的整数中,只能被1和它本身 ...
- 【数论知识】1:和1-n中的所有质数有关的算法(朴素版+升级版)
1.给定n,求出1~n中质数的个数 可以先记一下结论 是一个数学界推出来的,不知道为什么,记住就行 1-N里面有N/lnN个质数 朴素筛法(埃氏) 思想是用每个质数去筛除以它为约数的合数. 每个质数都 ...
- C语言实现埃拉托色尼筛选法(剔除数组中的非质数)
质数就是只能被1和本身整除的数.Eratosthenes筛选法是一种计算质数的有效方法. 这个算法的第一步就是写下所有从2至某个上限之间的所有整数. 在算法的剩余部分,遍历整个列表并剔除所有不是质数的 ...
- JAVA中如何判断质数
输入一个数判断它是否为质数 质数的定义为只能被自己和1整除的数且不等于1 方法一 System.out.println("请输入一个整数:"); int num = input.n ...
最新文章
- C# WinForm DataGridView单击选中一整行,只能单选
- elastic-job 的简单使用
- php redis与me m,Redis(十) —— 为php增加redis扩展
- ecshop清除mysql缓存_ECSHOP缓存清理关闭教程
- dubbo 支持服务降级吗_dubbo面试题!会这些,说明你真正看懂了dubbo源码
- 解决PD17虚拟机安装时出现 “操作失败 执行该操作失败”的方法
- airpods pro连接安卓声音小_airpods pro 麦克风声音小
- 树状数组萌新讲解+基础习题【一点一滴】
- mysql.createPool(db),Node.js中JavaScript操作MySQL的常用方法整理
- 台积电:无法回应检调中的案件,不评论单一客户特定订单
- 怎么checkout一个gerrit提交,完事之后再push
- data image转换图片php,PHP 将dataurl转成图片image方法总结
- 向量机和感知机的相同和不同点_感知机(perceptron)和支持向量机(svm)是一种东西吗?
如果不是那他们的区别和关系是什么?...
- centos安装pip失败:No package pip available.
- 腾讯云,搭建Git服务器
- 内存卡Android怎么删除,安卓手机怎么清理内置存储卡垃圾文件
- Gurub linux windows,windows10安装ubuntu双系统教程(绝对史上最详细)
- 解决Linux下无法利用shell脚本启动conda虚拟环境问题
- 员工每月工资数据集可视化分析
- 安河桥间奏为什么火_什么样的人会喜欢安和桥的间奏,初见的时,没想过后来会那么喜欢...