【筛法】第十万零二个素数
素数定理:给出从整数中抽到素数的概率。从不大于n的自然数随机选一个,它是素数的概率大约是1/ln n。也就是说在不大于n的自然数里,总共的素数为 n/lgn。
筛法:
1 public class 第十万零二个素数 { 2 3 public static void main(String[] args) { 4 long now = System.currentTimeMillis(); 5 // nlognlogn 6 f(100002); 7 System.out.println("耗时:" + (System.currentTimeMillis() - now) + "ms"); 8 9 /*============Java自带的api==========*/ 10 now = System.currentTimeMillis(); 11 BigInteger bigInteger = new BigInteger("1"); 12 for (int i = 1; i <= 100002; i++) { 13 bigInteger = bigInteger.nextProbablePrime(); 14 } 15 System.out.println(bigInteger); 16 System.out.println("耗时:" + (System.currentTimeMillis() - now) + "ms"); 17 18 /*==========朴素解法=========*/ 19 now = System.currentTimeMillis(); 20 int count = 0; 21 long x = 2; 22 while(count<100002){ 23 if (isPrime(x)) { 24 count++; 25 } 26 x++; 27 } 28 System.out.println(x-1); 29 System.out.println("耗时:" + (System.currentTimeMillis() - now) + "ms"); 30 } 31 public static boolean isPrime(long num){ 32 for (int i = 2; i*i <= num; i++) { 33 if (num%i==0) { 34 return false; 35 } 36 } 37 return true; 38 } 39 /** 40 * 41 * @param N 第N个素 42 */ 43 private static void f(int N){ 44 int n = 2; 45 // 自然数n之内的素数个数n/ln(n) 46 // 得到整数范围 47 while(n/Math.log(n)<N){ 48 n++; 49 } 50 int []arr = new int[n]; 51 int x = 2; 52 while(x<n){ 53 if (arr[x]!=0) { 54 x++; 55 continue; 56 } 57 int k=2; 58 //对每个x,我们从2倍开始,对x的k倍,全部标记为-1 59 while(x*k<n){ 60 arr[x*k] = -1; 61 k++; 62 } 63 x++; 64 } 65 // System.out.println(arr); 66 // 筛完之后,这个很长的数组里面非素数下标对应的值都是-1 67 int sum = 0; 68 for (int i = 2; i < arr.length; i++) { 69 // 是素数,计数+1 70 if (arr[i] == 0) { 71 // System.out.println(i); 72 sum++; 73 } 74 if (sum == N) { 75 System.out.println(i); 76 return; 77 } 78 } 79 } 80 81 }
结果:
转载于:https://www.cnblogs.com/xiaoyh/p/10337236.html
【筛法】第十万零二个素数相关推荐
- 第100002(十万零二)个素数是多少
素数就是不能再进行等分的整数.比如:7,11.而9不是素数,因为它可以平分为3等份.一般认为最小的素数是2,接着是3,5,... 请问,第100002(十万零二)个素数是多少? 请注意:"2 ...
- 第 100002(十万零二)个素数是多少?
题目描述 素数就是不能再进行等分的整数.比如7,11.而 9 不是素数,因为它可以平分为 3 等份.一般认为最小的素数是2,接着是 3,5,... 请问,第 100002(十万零二)个素数是多少? 请 ...
- 母牛python_《Python》 母牛的故事Hello, world用筛法求之N内的素数
1:题目: 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? def f(n): f1,f2,f3=1,2,3 if ...
- ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。
题目描述 用筛法求之N内的素数. 输入 N 输出 0-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7 ...
- SAP UI5 应用开发教程之一百零二 - SAP UI5 应用的打印(Print)功能实现详解试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- 二零二年度网络电话软件综合测评
二零二一年最后一天,让我们来为网络电话排个名颁个奖. 一.奖项设置 本届网络电话奖设最佳创新奖.最佳设计奖.最佳优惠奖. 二.报名范围 属于网络电话软件范畴即可. 三.评选标准 评选标准分为三个方面: ...
- SDL Trados 2019 和 SDL Trados 2021 二零二一五月更新
SDL Trados 2019 和 SDL Trados 2021 二零二一五月更新 好久没检查更新了 检查地址 https://update.sdl.com/updates/update1/stud ...
- 用筛法求之N内的素数
用筛法求之N内的素数. 时间限制: 1 Sec 内存限制: 64 MB 提交: 127 解决: 105 [提交][状态][讨论版][Edit] [TestData] 题目描述 用筛法求之N内的素数 ...
- 蓝桥杯每日一练——用筛法求之N内的素数 python
题目描述 用筛法求之N内的素数. 输入 N 输出 0-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7 ...
- 二零二零,自己选的路,跪着也要走完
最近,真的处在崩溃的边缘,我想要回到年初疫情按下暂停键的生活,以至于现在的我不用拖着疲惫的身躯仍需前行.我想要回到温暖的港湾,陪在爷爷奶奶身边,以至于他们不用天天盼着我回家.我想--而这一切美好的事情 ...
最新文章
- 《WCF技术内幕》翻译2:《WCF技术内幕》绪论
- linux 文件系统检查命令
- Qt Creator支持平台
- FontAwesome-网站ui设计中一套非常棒的icon
- 「Python」conda与pip升级所有的包
- Mysql在window下的表现_Mysql在windows系统下的配置
- unix环境高级编程基础知识之第一篇
- D3D12渲染技术概述
- PHP留言板系统设计图,简单实现PHP留言板功能
- php计算圆的面积怎么带单位_圆的面积计算公式的教学演示工具的制作方法
- FAST-LIO2代码解析(四)
- ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]
- SAI绘制宇宙的翅膀
- 微信公众平台被动回复用户消息开发全步骤
- R语言|Rstudio|初学笔记
- 【黎乙丙】几种ps调色工具及使用方式
- 隐式函数matlab,matlab隐函数求解的几种方法
- 【npm】npm发布测试(beta)版和正式版
- soul网关mysql8_深度解析 Soul 网关——数据同步
- 【新闻解读2019年】四分类不能准确区分所有垃圾 市民建议用更直白的名称
热门文章
- django小站,数据3w+
- 主板定制X86嵌入式器件选型
- 《树莓派Python编程入门与实战(第2版)》——1.9 QA
- Kienct与Arduino学习笔记(2) 深度图像与现实世界的深度图的坐标
- [蛋蛋涂鸦]蜡笔蛋&某蛋真面目(表被吓着)
- 敏捷思维-架构设计中的方法学(12)Refactoring
- 计算机培训中学语文研修计划,初中语文个人研修计划书
- php sockets有什么用,PHP中Sockets与流有什么关系啊!!!!!
- java多行字符串变量_java – Scala – 如何在多行字符串文字中使用变量
- SpringMVC的RESTful(二)定制格式