什么是素数(质数)?

比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做质数或素数


思想,怎么做才能高效?

要判断X是否为质数,就从2一直尝试到x-1的做法效率是最差的! 其实只要从2一直尝试到√x,就可以了。因为因数都是成对出现的。比如,100的因数有:1和100,2和50,4和25,5和20,10和10。看出来没有?成对的因数,其中一个必然小于等于100的开平方,另一个大于等于100的开平方。


代码实现

效率由高到低

方法一(取平方根,效率高):

package hardCode;public class 素数_质数 {public static void main(String[] args) {boolean flag;for(int i=2;i<100;i++) {flag=true;  //flag要放在循环里面,每个循环都要重新赋值for(int j=2;j<=Math.sqrt(i);j++) {    //i取根号比除2这样效率高些if(i%j==0) {flag=false;break;}}if(flag) {System.out.println(i+" ");}}}}
package hardCode;public class 素数_质数 {public static void main(String[] args) {//输出100以内的素数int i=0;int j=0;for(i=1;i<=100;i++) {for(j=2;j<=(int)Math.sqrt(i);j++) {if(i%j==0) {  //如果i可以与某个小于自身又不等于1的数整除break;   //那么跳出循环}}if(j>(int)Math.sqrt(i)) {System.out.println(i);}}}}

方法二( /2 效率一般):

package hardCode;public class 素数_质数 {public static void main(String[] args) {boolean flag;for(int i=2;i<100;i++) {flag=true;  //flag要放在循环里面,每个循环都要重新赋值for(int j=2;j<i/2;j++) {   //i除了2这样效率高些if(i%j==0) {flag=false;break;}}if(flag) {System.out.println(i+" ");}}}}

方法三(效率最低):

package hardCode;public class 素数_质数 {public static void main(String[] args) {boolean flag;for(int i=2;i<100;i++) {flag=true;  //flag要放在循环里面,每个循环都要重新赋值for(int j=2;j<i;j++) {if(i%j==0) {flag=false;break;}}if(flag) {System.out.println(i+" ");}}}}

Java求素数(质数)的几种方法相关推荐

  1. java求小于n的素数_java_Java实现求小于n的质数的3种方法,质数概念 质数,又称素数, - phpStudy...

    Java实现求小于n的质数的3种方法 质数概念 质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数). 最小的素数是2,也是素 ...

  2. php100以内质数求和,100以内的质数_PHP质数计算三种方法 php求100以内的质数

    摘要 腾兴网为您分享:PHP质数计算三种方法 php求100以内的质数,自动刷宝,长沙银行,猿辅导,愈加等软件知识,以及cf一键刷枪,业主名录采集软件,卡乐光电,魔方虚拟光驱,掌上徐州,卡农社区,fa ...

  3. 素数判断的几种方法代码实现及其复杂度分析

     素数判断的几种方法代码实现及其复杂度分析  原文链接:http://blog.csdn.net/infinitezhen/article/details/8961964 一. 朴素判断素数 根据素数 ...

  4. java 匿名list,java创造匿名对象的两种方法

    在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...

  5. java.lang.IllegalArgumentException异常处理的一种方法

    java.lang.IllegalArgumentException异常处理的一种方法 参考文章: (1)java.lang.IllegalArgumentException异常处理的一种方法 (2) ...

  6. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...

  7. 将JAVA编译为EXE的几种方法

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 将JAVA编译为EXE的 ...

  8. Java中创建数组的几种方法

    Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...

  9. 在 Java 中初始化 List 的五种方法

    转载自  在 Java 中初始化 List 的五种方法 Java 中经常需要使用到 List,下面简单介绍几种常见的初始化方式. 1.构造 List 后使用 List.add 初始化 List< ...

  10. 高级 | Java中获取类名的3种方法

    转载自 高级 | Java中获取类名的3种方法 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonical ...

最新文章

  1. 简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】
  2. java定时器检测状态_实用代码| shell脚本实现定时检查应用状态
  3. 4kyu Sum by Factors
  4. HTML5之内嵌框架
  5. php将文件夹打包zip文件,php将文件夹打包成zip文件
  6. C语言程序程序设计—数组
  7. python算法与数据结构-数据结构中常用树的介绍(45)
  8. 207. Course Schedule
  9. 读数据库所有表和表结构的sql语句了(mssql)
  10. linuxmake没有指明目标并且找不到makefile_如何写makefile?
  11. uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据) (转)...
  12. [.NET开发] NPOI导出
  13. Hive sql 行列转换(行转列,列转行)
  14. android根据经纬度获取位置,Android获取经纬度
  15. 编译祁大神的iguana,大神就是大神.
  16. android好用的文件管理器,安卓哪种文件管理器好用 三款文件管理器横向评测
  17. zookeeper windows7下集群搭建
  18. 【原】在vc中实现获取汉字拼音的首字母 - lixiaosan的专栏 - CSDNBlog
  19. diy无感无刷电机霍尔安装_无刷直流电机霍尔传感器安装方法研究
  20. C语言程序设计实践教程 邹显春pdf

热门文章

  1. 临时禁用clang-format
  2. 动态规划法求解0-1背包问题
  3. 东南亚跨境电商迅猛发展,商机转瞬即逝!
  4. python 程序删除自身
  5. java easyreport 导入excel、 txt 数据数据格式校验(六)
  6. Acrel-2000系列监控系统在亚运手球比赛馆建设
  7. php switch
  8. 在jupyter中怎么打开.py文件
  9. 要web开发精品教程吗?免费一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放
  10. 如何用命令行进入MySQL数据库?