博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JD 题目1040:Prime Number (筛法求素数)
阅读量:4971 次
发布时间:2019-06-12

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

OJ题目:

题目分析:输出第k个素数

贴这么简单的题目,目的不清纯歧视

用筛法求素数的基本思想是:把从1開始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。

依次类推。直到筛子为空时结束。

如有:

1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
1不是素数。去掉。剩下的数中2最小,是素数,去掉2的倍数。余下的数是:
3 5 7 9 11 13 15 17 19 21 23 25 27 29
剩下的数中3最小。是素数,去掉3的倍数,如此下去直到全部的数都被筛完,求出的素数为:
2 3 5 7 11 13 17 19 23 29
AC_CODE

#include 
#include
#include
#include
using namespace std ;const int N = 1000000;bool prime[N] ;void initprime(){ memset(prime, 1 , sizeof(prime)) ; prime[0] = prime[1] = 0 ; double t = sqrt(N) + 1 ; for(int i = 2;i < t;i++){ if(prime[i]){ for(int j = i + i;j < N;j += i) prime[j] = false ; } }}int main(){ initprime(); int k , t ; while(cin >> k){ t = 0 ; for(int i = 0;i < N;i++){ if(prime[i]){ t++; if(t == k){ cout << i << endl ; break ; } } } } return 0 ;}

转载于:https://www.cnblogs.com/wzjhoutai/p/7367995.html

你可能感兴趣的文章
Java基础常见英语词汇
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>