python用筛选法求解小于n的所有素数_用筛选法求解n以内的所有素数

用筛选法求解n以内的所有素数:筛选法的思想是一个数是素数则这个数的所有的倍数都是合数,我们不去找素数而去找合数,剩下的就是素数了。一个合数其最大的质因子不会超过其开发数,所以只要迭代到其最大数的开方数即可 一个简单的筛素数的过程:n=30。

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 4 ... 28 30这15个单元被标成false,其余为true。

第 2 步开始:

i=3; 由于prime[3]=true, 把prime[6], [9], [12], [15], [18], [21], [24], [27], [30]标为false.

i=4; 由于prime[4]=false,不在继续筛法步骤。

i=5; 由于prime[5]=true, 把prime[10],[15],[20],[25],[30]标为false.

i=6>sqrt(30)算法结束。

第 3 步把prime[]值为true的下标输出来:

控制台输出

用筛选法求解30以内的所有素数:

2 3 5 7 11 13 17 19 23 29

Process finished with exit code 0

代码如下

package AlgorithmTest;

/**

* Created by dell on 2016/12/18.

*/

//一个简单的筛素数的过程:n=30。

// 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 4 ... 28 30这15个单元被标成false,其余为true。

// 第 2 步开始:

// i=3; 由于prime[3]=true, 把prime[6], [9], [12], [15], [18], [21], [24], [27], [30]标为false.

// i=4; 由于prime[4]=false,不在继续筛法步骤。

// i=5; 由于prime[5]=true, 把prime[10],[15],[20],[25],[30]标为false.

// i=6>sqrt(30)算法结束。

// 第 3 步把prime[]值为true的下标输出来:

public class Sushu {

public static void main(String[] args) {

System.out.println("用筛选法求解30以内的所有素数:");

printSushu(30);

}

public static void printSushu(int n){

if ( n <= 1){

System.out.println("输入错误");

}

boolean[] isPrimes = new boolean[n + 1];

for (int i = 0 ; i < isPrimes.length; i++){

isPrimes[i] = true;

}

for (int j = 4; j <= n; j += 2){

isPrimes[j] = false;

}

for (int j = 3; j < Math.sqrt(n); j++){

if (isPrimes[j]){//如果是素数则其所有的倍数都是合数

for (int i = j + j ; i <= n; i = i + j){

isPrimes[i] = false;

}

}

}

for (int i = 2; i < isPrimes.length; i++){

if (isPrimes[i]){

System.out.print(i + " ");

}

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql类似于excel的删除重复项_Excel去除重复项的三种常用技巧

在工作中&#xff0c;经常会有需要在对原始记录清单进行整理时&#xff0c;剔除其中一些重复项。所谓的重复项&#xff0c;通常是指某些记录在各个字段中都有相同的内容(纵向称为字段&#xff0c;横向称为记录)&#xff0c;例如下面图中的第三行数据记录和第五行数据记录就是完…

cas java单点登录_java单点登录系统CAS的简单使用

http://blog.csdn.net/yunye114105/article/details/7997041参考&#xff1a;http://blog.csdn.net/diyagea/article/details/50638737(配置SSL协议)http://www.cnblogs.com/notDog/p/5264666.html背景有几个相对独立的java的web应用系统&#xff0c; 各自有自己的登陆验证功能…

md5 java 工具类_Java实现一个MD5工具类

I. MD5工具类利用JDK封装一个简易的MD5工具类&#xff0c;逻辑比较简单&#xff0c;直接贴下具体实现public static String getMD5(String content) {String result "";try {MessageDigest md MessageDigest.getInstance("md5");md.update(content.getBy…

java class private_Java class 中public、protected 、friendly、private的区别

转载自&#xff1a;http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33cJava class 中public、protected 、friendly、private的区别1.类(class)可见性修饰符&#xff1a; public—在所有类中可见&#xff0c;在其他包中可以用import导入。缺省—就是没有修饰符&#xff…

java getparameter 乱码_request.getParameter(“参数名”) 中文乱码解决方法

今天浏览项目时候&#xff0c;遇到一个问题&#xff0c;页面用${requestScope.参数名 }获取的值是乱码&#xff0c;然后搜了一下&#xff0c;最后说是编码的问题&#xff0c;附上查找的结果&#xff1a;在Java 开发中&#xff0c;如果框架搭建的不完善或者初学者在学习过程中&a…

Java 将byte转换kb_【Java】把字节数B转化为KB、MB、GB的方法

在文件处理的系统中&#xff0c;很容易就能通过一些系统自带的方法取出其大小&#xff0c;问题是这个大小往往只是一个字节数B。如果要把这个字节数转化为KB、MB、GB的最终呈现给用户&#xff0c;则涉及到整除与取余的算术运算。方法如下&#xff1a;public static String getP…

java两种异常_JAVA两种异常的区别 (转)

Java提供了两类主要的异常&#xff1a;runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的&#xff0c;而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。它们的不同之处表现在两方面&…

java 常见 错误_JAVA几个常见错误简析

JAVA几个常见错误简析Java看起来设计得很像C&#xff0c;但是为了使语言小和容易熟悉&#xff0c;设计者们把C语言中许多可用的特征去掉了&#xff0c;这些特征是一般程序员很少使用的。下面就来和小编一起看看JAVA几个常见错误简析吧。1、空指针错误 java.lang.NullPointerExc…

java如何阻塞和同步_同步与异步,阻塞与非阻塞

今天早上关注了这个问题&#xff0c;刚抽出时间大概整理下&#xff0c;以下仅是个人理解&#xff1a;一定要多看几遍代码并结合文字理解下引0、从I/O说起这些概念之所以容易令人迷惑&#xff0c;在于很多人对I/O就没有清晰准确的理解&#xff0c;后面的理解自然不可能正确。我想…

Java中文乱码破碎重组_总结彻底解决Spring MVC+Mybatis中文乱码问题

Java对于新手最容易出现的问题就是中文乱码的问题。今天我就来总结一下彻底解决Spring mvcMybatis中文乱码的方案。首先要看打一断点看一下Controller接收到参数值是否正常。如果不正常多半是因为Spring或者页面编码的设置问题。一、Spring或页面编码问题在JSP页面第一行加上下…

编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...

我正在尝试使用javassist以编程方式创建和编译实现接口的类(在运行时)。每当我调用该动态类的实例时&#xff0c;都会收到以下错误消息&#xff1a;java.lang.AbstractMethodError: FooImpl.test()Ljava/lang/Object;这是我的界面public class FooBarInterface {public T getEn…

c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...

现在在编程语言排行中&#xff0c;Java毫无争议的排在第一位&#xff0c;Python以及C语言紧随其后。现在很多人拿Java以及C语言作比较&#xff1a;有人认为Java作为当前最热门的编程语言&#xff0c;学习Java的出路最大或者说作为一个合格的程序员一定要了解学习一下Java编程&a…

Java8的产品周期_java8的时间和`Date`的对比

java8提供了新的时间接口。相对Date,Calendar,个人感觉最大的好处是对时间操作的学习成本很低&#xff0c;比Calendar低。1. LocalDate,LocalTime,LocalDateTimeLocalDate 代表日期&#xff0c;LocalTime表示时刻&#xff0c;类似11:23这样的时刻。 LocalDateTime就是前面2个的…

java怎么设置多个输入_Java中从键盘输入多个整数的方法

Java中从键盘输入多个整数的方法发布于 2020-4-2|复制链接分享一篇关于Java中从键盘输入多个整数的方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。一起跟随小妖过来看看吧例题&#xff1a;求数列的和 分别输入两个整数n&#xff0c;m,中间以空格隔断&…

从java代码获取类名_java代码获取当前类类名、方法名

获取类名&#xff1a;1、在类的实例中可使用this.getClass().getName();但在staticmethod中不能使用该方法&#xff1b;2、在staticmethod中使用方法:Thread.currentThread().getStackTrace()[1].getClassName();获取方法名&#xff1a;Thread.currentThread().getStackTrace()…

linux将mysql导出表数据导入另一台服务器_远程linux服务器mysql数据库导入和导出.sql文件...

今天对需要将服务器上的数据库放到本地环境&#xff0c;之前没怎么这么操作过&#xff0c;ORZ&#xff0c;弱鸡&#xff0c;这篇帖子不错&#xff0c;收藏了&#xff01;&#xff01;&#xff01;远程linux服务器mysql数据库导入和导出.sql文件大部分情况本地开发环境为windows…

java cpu高_Java中的CPU占用高和内存占用高的问题排查

下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程。如果是Java面试&#xff0c;这2个问题在面试过程中出现的概率很高&#xff0c;所以我打算在这里好好总结一下。1、Java CPU过高的问题排查举个例子&#xff0c;如下&#xff1a;package com.classloading;public…

solr 时间转成java_solr时区设置解决时间多8小时问题

今天发现我博客里文章的时间与实际时间差了8小时&#xff0c;正好比原来时间多出8小时&#xff0c;想想应该是时区不一致的问题。用solr web工具查询出来的数据原样&#xff1a;"create_time": "2018-01-18T11:22:06Z"{"original": 1,"crea…

php if 单行,php – 单行if语句或if语句没有大括号坏习惯?

最好的做法是编写别人可以轻松读取和更新的代码。您的第一个表单是有问题的&#xff0c;因为它不遵循大多数PHP开发人员使用的表单&#xff1a;if (condition) {// code} else {// code}// ... or ...if (condition){// code}else{// code}// ... or ...if (condition) { /* sh…

php 错误 异常,php中的异常和错误解析

PHP错误是属于php程序自身的问题&#xff0c;一般是由非法的语法&#xff0c;环境问题导致的&#xff0c;使得编译器无法通过检查甚至无法运行的情况。PHP异常一般是业务逻辑上出现的不合预期、与正常流程不同的状况&#xff0c;不是语法错误。本文介绍了php中异常和错误的相关…