文档章节

Java求素数例子——郑州尚学堂

郑州尚学堂
 郑州尚学堂
发布于 2017/07/12 11:34
字数 430
阅读 4
收藏 0
点赞 0
评论 0


素数(质数)指的是不能被分解的数,除了 1 和它本身之外就没有其它数能够整除。

 

这里是一个小例子,说明如何求取十万以内的所有素数。


 
素数的分布没有规律可言,所以要检验一个数是不是素数,就必须将它同所有小于它的数作除法。

不过有一个简便的方法,就是不需要检验所有小于它的数,而只要检验所有小于它的素数。

如果所有小于它的素数都不能将其整除,那么它就是素数。

 

public class Primes { 
  
  public static void main(String[] args) { 
    // 求素数 
    List<Integer> primes = getPrimes(100000); 
  
    // 输出结果 
    for (int i = 0; i < primes.size(); i++) { 
      Integer prime = primes.get(i); 
      System.out.printf("%8d", prime); 
      if (i % 10 == 9) { 
        System.out.println(); 
      } 
    } 
  } 
  
  /** 
   * 求 n 以内的所有素数 
   * 
   * @param n 范围 
   * 
   * @return n 以内的所有素数 
   */ 
  private static List<Integer> getPrimes(int n) { 
    List<Integer> result = new ArrayList<Integer>(); 
    result.add(2); 
 
    for (int i = 3; i <= n; i += 2) { 
      if (!divisible(i, result)) { 
        result.add(i); 
      } 
    } 
  
    return result; 
  } 
  
  /** 
   * 判断 n 是否能被整除 
   * 
   * @param n   要判断的数字 
   * @param primes 包含素数的列表 
   * 
   * @return 如果 n 能被 primes 中任何一个整除,则返回 true。 
   */ 
  private static boolean divisible(int n, List<Integer> primes) { 
    for (Integer prime : primes) { 
      if (n % prime == 0) { 
        return true; 
      } 
    } 
    return false; 
  } 
}

 

 

6.20-7.12报名Java课程即可优惠2000元, 送Java视频

 

郑州尚学堂7月开班时间公告

 

Java培训脱产班开课时间:2017年07月12日 抢座中..

Android培训脱产班开课时间:2017年07月12日 抢座中..

 

编程学习问题和资料+QQ:3500819260

 

地址:河南省郑州市金水区文化路硅谷广场B座9楼011A-018号

© 著作权归作者所有

共有 人打赏支持
郑州尚学堂
粉丝 0
博文 68
码字总数 46935
作品 0
郑州
Java 8的Lambda VS Groovy的Closure

本文翻译自:http://www.javacodegeeks.com/2014/06/java-8-lambdas-vs-groovy-closures-compactness-grouping-and-summing.html Java 8已经支持lambdas,它很像Groovy早就支持的:闭包。 在......

翟志军
2014/07/18
0
2
从Java到JVM到OS线程的优先级

前言 Java 的线程的调度机制由 JVM 实现,假如有若干条线程,你想让某些线程拥有更长的执行时间,或某些线程分配少点执行时间,这时就涉及“线程优先级”。 优先级别 Java 把线程优先级分成1...

超人汪小建
06/25
0
0
[雪峰磁针石博客]Jython介绍

快速入门 下面我们使用jython来调用自定义jar包中的类。 编辑java文件:Beach.java 编译成jar包: 添加Craps.jar到CLASSPATH,修改/etc/profile,修改CLASSPATH 使用. /etc/profile导入变量。...

Python测试开发人工智能
07/17
0
0
EL表达式的使用及编写和使用EL表达式的自定义函数

什么是EL表达式 Expression Language————表达式语言 EL表达式的作用 获取数据 执行运算 获取Web开发常用对象 执行Java方法 获取数据: <% User user = new User("旺财", "幸福路", 18);...

Lunqi
2015/08/19
0
4
android开发教程(3)— jni编程之采用SWIG从Java调用C/C++

Android 从Java调用C/C++ 当无法用 Java 语言编写整个应用程序时,JNI 允许您调用C/C++本机代码。在下列典型情况下,您可能决定使用本机代码: 希望用更低级、更快的编程语言C/C++去实现对时...

刘小米
2014/09/16
0
0
Instrumentation 实践详解

利用 Java 代码,即 java.lang.instrument 做动态 Instrumentation 是 Java SE 5 的新特性,有了这样的功能,开发者就可以实现更为灵活的和 了,这样的特性实际上提供了,使得开发者无需对 ...

陶邦仁
2014/12/30
0
0
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
06/21
0
0
浅谈把Java字节码译为C代码的意义

Java字节码是基于栈的一种编码。这种编码方式十分方便解释器的设计,但同时不利于程序分析,因此一些高效的代码优化技术无法方便的Java字节码上实现。 先大体说说Java字节码的特点。目前版本...

小欣妹妹
04/26
0
0
Commons DbUtils

1 概述 Commons DBUtils类库是小型的设计于易于使用JDBC的类集合。JDBC资源清理是平凡的,容易出错,以至于这些类从你的代码中抽象出清理代码,剩下你最初真正想要使用JDBC做的代码:查询和更...

Leech
2015/07/21
0
0
【备忘】总结一些Java学习者经常去的网站及论坛

这里面有些网站虽然不是这方面做的最大的,但是里面的东西确实是非常好 Java学习网站 JAVA学习者论坛(www.javaxxz.com):Java学习者论坛里面的资源非常多,里面有Java、大数据、机器学习、W...

远近高低各不同
07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Laravel5.5 MySQL配置、读写分离及操作

Laravel 让连接不同数据库以及对数据库进行增删改查操作: 参考:http://laravelacademy.org/post/854.html 配置读写分离 应用的数据库配置位于 config/database.php(但是数据库用户及密码等...

MichaelShu
3分钟前
0
0
TraitsUI与Mayavi实例

一:创建一个简单的TraitsUI与Mayavi实例 # -*- coding: utf-8 -*-from numpy import sqrt,sin,mgridfrom traits.api import HasTraits,Instancefrom traitsui.api import View,Item......

wangxuwei
9分钟前
0
0
Linux 查看用户

存储帐号的文件:/etc/passwd 存储密码的文件:/etc/shadow 查看当前系统所有用户 grep bash /etc/passwd root修改普通用户的密码 sudo passwd user_name 然后连续两次输入新的用户密码即可...

yeahlife
10分钟前
0
0
Webpack使用nodemon实时打包编译

业务场景: 1.编写一个npm组件包并且link到了项目文件中 2.需要不断的修改并run build编译npm包并且在项目run dev 查看效果 3.问题: 每次改完npm包都要手动run build编译十分的麻烦且低效,可不...

JamesView
21分钟前
0
0
电脑炸了,浪费我好几天时间,还是简要记下来吧

我的小本本一直在兢兢业业的干活,然而前几天说炸就炸了...... 爆炸现场: 软件: windows10 pro + EIS11+ 360卫士 BIOS:N1DET98W 2.24 硬件: Xeon E3 1505-V5 nv-M3000M thinkpadP70:20E...

Oh_really
25分钟前
0
0
Git之branch和checkout

1.branch是查看、创建、删除分支 #>git branch --helpNAME git-branch - List, create, or delete branchesSYNOPSIS git branch [--color[=<when>] | --no-color] [......

汉斯-冯-拉特
27分钟前
0
0
Mybatis拦截器之数据权限过滤与分页集成

需求场景 最近项目有个数据权限的业务需求,要求大致为每个单位只能查看本级单位及下属单位的数据,例如:一个集团军下属十二个旅,那么军级用户可以看到所有数据,而每个旅则只能看到本旅部...

佛系程序猿灬
36分钟前
9
0
SpringCloud 微服务 (十六) 服务追踪 Zipkin

问题 在服务中,有一个接口,该A接口中又调用了其他服务的B、C、D接口,出现一个请求耗时大的问题,这时候并不知道该B、C、D接口中哪个接口造成的耗时量,然后比如确定C服务接口出现的耗时量大,但...

___大侠
今天
0
0
Java面试基础篇——第八篇:抽象类与接口的区别

1.抽象类 抽象类:如果一个类中包含有抽象方法,或这个类使用abstract关键字修饰,则称这个类是抽象类。 抽象方法是什么呢?抽象方法就是指用abstract关键字修饰的方法。 需要注意的是:抽象...

developlee的潇洒人生
今天
2
0
jsoup 相关资料

1.jsoup 2.Jsoup概述 3.jsoup入门 4.jsoup Java HTML Parser 1.11.3 API

IT追寻者
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部