100000以内素数java实验结果截图_寻找100000以内素数(质数)
方法一
简单的质数寻找就是对1~100000的数进行遍历
方法二
这样的遍历复杂度为O(n2)
进行优化就可以发现偶数不可能为质数,因此质数也不可能含有偶数因子
方法三
经过计算发现所有的质数都满足4x+1或者4x-1
因此将其命名为模4遍历法
方法四
与方法三类似,创建了模6遍历法
以下是源代码
import java.util.ArrayList;
import java.util.List;
/**
* Author: samsung
* Date: 04/12/2019
* Email: ********@foxmail.com
**/
public class PrimeSearch {
public static void main(String[] args){
//寻找100000以内所有质数
//暴力搜索
long start1=System.currentTimeMillis();
List list1=new ArrayList<>();
list1.add(2);
for(int i=3;i<=100000;++i){
boolean flag=true;
for(int k=2;k
if(i%k==0){
flag=false;
break;
}
}
if(flag)list1.add(i);
}
System.out.println("暴力傻子式遍历法:");
System.out.println("共找到质数"+list1.size()+"个,耗时"+(System.currentTimeMillis()-start1)+"ms");
//排除偶数
long start2=System.currentTimeMillis();
List list2=new ArrayList<>();
list2.add(2);
for(int i=3;i<100000;i+=2){
boolean flag=true;
for(int k=3;k
if(i%k==0){
flag=false;
break;
}
}
if(flag)list2.add(i);
}
System.out.println("排除偶数和偶数因子遍历法:");
System.out.println("共找到质数"+list2.size()+"个,耗时"+(System.currentTimeMillis()-start2)+"ms");
//继续优化发现除2以外,其他质数均满足4x-1或者4x+1
//因此做出以下测试
long start3=System.currentTimeMillis();
List list3=new ArrayList<>();
list3.add(2);
int m=0,n=0;
for(int i=1;m<100000||n<100000;++i){
m=4*i-1;n=4*i+1;
if(m<100000){
boolean flag=true;
for(int k=3;k
if(m%k==0){
flag=false;
break;
}
}
if(flag)list3.add(m);
}
if(n<100000){
boolean flag=true;
for(int k=3;k
if(n%k==0){
flag=false;
break;
}
}
if(flag)list3.add(n);
}
}
System.out.println("模4遍历法:");
System.out.println("共找到质数"+list3.size()+"个,耗时"+(System.currentTimeMillis()-start3)+"ms");
//继续优化发现除2,3以外,其他质数均满足6x-1或者6x+1
//因此做出以下测试
long start4=System.currentTimeMillis();
List list4=new ArrayList<>();
list4.add(2);
list4.add(3);
m=0;n=0;
for(int i=1;m<100000||n<100000;++i){
m=6*i-1;n=6*i+1;
if(m<=100000){
boolean flag=true;
for(int k=3;k
if(m%k==0){
flag=false;
break;
}
}
if(flag)list4.add(m);
}
if(n<=100000){
boolean flag=true;
for(int k=3;k
if(n%k==0){
flag=false;
break;
}
}
if(flag)list4.add(n);
}
}
System.out.println("模6遍历法:");
System.out.println("共找到质数"+list4.size()+"个,耗时"+(System.currentTimeMillis()-start4)+"ms");
}
}
运行结果是
暴力傻子式遍历法:
共找到质数9592个,耗时1674ms
排除偶数和偶数因子遍历法:
共找到质数9592个,耗时661ms
模4遍历法:
共找到质数9592个,耗时661ms
模6遍历法:
共找到质数9592个,耗时655ms
由此得出结论,排除偶数因子的方法和模6模4遍历法速度基本一致
100000以内素数java实验结果截图_寻找100000以内素数(质数)相关推荐
- java web 截图_如何以Java实现网页截图技术
今天看到某网友关于"如何以Java实现网页截图技术"的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答. 事实上,如果您想以Java实现网页截图,也就是" ...
- java 素数欧拉筛选_[C++]欧拉素数筛的理解与实现
在传统的素数筛法中,我们使用了对于每一个数n,在 1~(√n) 范围内进行取模检查,这样逐一判断的复杂度为n(√n). 但如果我们需要更快的筛法时怎么办? 于是著名的欧拉筛诞生了.它能将复杂度降为** ...
- java 树最大距离_寻找二叉树最远的叶子结点(实例讲解)
面试的时候碰到一个题:如何找到一个二叉树最远的叶子结点,以及这个叶子结点到根节点的距离? 第一反应肯定是递归 如何能找到最远的叶子结点,同时也能记下这个叶子节点到根节点的距离呢?采用一个List保持从 ...
- java flash截图_求大神们帮助, 如何在java中实现文字数据转换成图片或flash显示
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 protected void doGet(HttpServletRequest request, HttpServletResponse response ...
- 利用素数表快速寻找 n 以内的所有素数
http://blog.csdn.net/wxyztuv/article/details/7965556 三个函数,find_prime() 是利用素数表的方法,寻找素数的,find_prime_st ...
- python寻找n以内的素数算法
本文所利用的素数性质是:所有的素数都是奇数,且除2,3外其余素数都出现在6n-1与6n+1这两个数列中 具体代码如下 首先创建一个长度为n的false列表,再将索引为2,3,和6n+1.6n-1这两个 ...
- (C++)寻找1-100以内所有素数,复杂度为O(nsqrt(n))与O(nloglogn)的两种方法
注意:1既不是质数也不是合数,2是质数. 1. 复杂度为O(nsqrt(n)) 原理:先写一个判断整数是否为素数的函数,其复杂度为sqrt(n),其原理是对于一个数n,如果它有除了1和自身之外的因子, ...
- java图片切割类任务书_基于Java的截图工具(可储存编辑)的设计与实现毕业论文+任务书+翻译及原文+答辩PPT+源码+辅导视频...
基于Java的截图工具(可储存编辑)的设计与实现 摘要 当今时代是飞速发展的信息时代,人们在对信息的处理中对图像的处理量与日俱增,这一点在文档人员上显得非常突出. 本软件采用Java语言进行模拟qq截 ...
- HDU1262 寻找素数对【素数】
寻找素数对 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
最新文章
- JavaEE学习笔记之Servlet
- ad域控如何建立在云端_呼叫中心哪家好?选择云端呼叫中心还是本地化部署呼叫中心好?...
- matplotlib-绘制精美的图表
- macbookpro合盖后掉电_macbookpro外接显示器,主机盖还是不盖?
- CPU核数跟多线程的关系
- Web前端开发笔记——第二章 HTML语言 第三节 文本格式化标签
- 交换排序图解_排序算法学习分享(二)交换排序---冒泡排序与快速排序
- 双网卡主机配置oracle监听,VirtualBox设置双网卡实现虚机上网及主宿机互访
- Meteor的工作原理及优势与不足
- 20145227《网络对抗》后门原理与实践
- 数组题 倒置 加到字符串
- python制作网页挂机_python使用ip代理抓取网页
- Linux程序设计第二版练习题(第七章)
- VM虚拟机装Windows2000成功后VM Tools失败解决方法
- RGB HSV CMYK LAB颜色空间
- 20 个有用的 Go 语言微服务开发框架吐血总结!!!
- AndroidStudio下建立libs、raw、、assets、selector、shape、anim、存放so
- 基于LSTM-Attention模型的光伏电站发电量预估(1)
- apidoc生成文档时报错
- 【趣文】我是一个线程