(1)未经优化时所耗费的时间:

public class PrimeNumber {
public static void main(String[] args) {
long start = System.currentTimeMillis();
boolean flag = false;
for(int i = 2; i <= 100000; i++){
for(int j = 2; j < i; j++){
if(i % j == 0){
flag = true;
}
}
if(flag == false)
System.out.print(i+" ");
flag = false;
}
long end = System.currentTimeMillis();
System.out.println("\n"+(end - start));
}
}

其所耗费的时间为:27038ms

(2)优化一:内层循环的判断,当false已经为true的时候,即可跳出内层循环

public class PrimeNumber {
public static void main(String[] args) {
long start = System.currentTimeMillis();
boolean flag = false;
for(int i = 2; i <= 100000; i++){
for(int j = 2; j < i; j++){
if(i % j == 0){
flag = true;
break;
}
}
if(flag == false)
System.out.print(i+" ");
flag = false;
}
long end = System.currentTimeMillis();
System.out.println("\n"+(end - start));
}
}

其所耗费的时间为:2424ms

(3)优化二:内层循环只需循环到i的根号时,即可结束(注意包括i的根号)

public class PrimeNumber {
public static void main(String[] args) {
long start = System.currentTimeMillis();
boolean flag = false;
for(int i = 2; i <= 100000; i++){
for(int j = 2; j <= Math.sqrt(i); j++){
if(i % j == 0){
flag = true;
break;
}
}
if(flag == false)
System.out.print(i+" ");
flag = false;
}
long end = System.currentTimeMillis();
System.out.println("\n"+(end - start));
}
}

其所耗费的时间为:191ms

(4)也可以使用标签实现:

public class PrimeNumber2 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
label1:
for(int i = 2; i <= 100000; i++){
for(int j = 2; j <= Math.sqrt(i); j++){
if(i % j == 0){
continue label1;
}
}
System.out.print(i+" ");
}
long end = System.currentTimeMillis();
System.out.println("\n"+(end - start));
}
}

其耗费时间为:195ms

Java优化之输出十万以内的质数的更多相关文章

  1. java练习题:输出100以内与7有关的数、百马百担、打分(去掉最高、最低分)、二分法查找数据

    1.输出100以内与7有关的数 注: 这些数分为三类:(1)7的倍数,(2)个位数字是7的数,(3)十位数字是7的数 int i=1; System.out.println("输出100以内 ...

  2. PHP面试题之实现输出100以内的质数

    最近求职时的其中一道面试题: 求100之内的质数 <? //求100以内质数 for ($i = 1; $i <= 100; $i++) { $k = 0; for ($j = 1; $j ...

  3. C++ —— 输出100以内的质数

    代码如下: #include<iostream> #include<math.h> using namespace std; int main() { int i; for(i ...

  4. 【Python实践-7】输出100以内的所有素数

    #输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格). i= l=[] : k= ,i): : k=k+ : l.append(i) i=i+ print(" ...

  5. 1.2输出100以内的素数&输出前100个素数。

    输出100以内的素数只是一个嵌套,在1.1的基础上添加一层循环,只需要注意从2开始,并且变量需要换一个. #include<stdio.h> int main() { ; ; i < ...

  6. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...

  7. Java数字格式化输出时前面补0

    Java数字格式化输出时前面补0 星期日 2014年11月30日|  分类: Java     /** * 里数字转字符串前面自动补0的实现. * */ public class TestString ...

  8. Java自定义日志输出文件

    Java自定义日志输出文件 日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别.打印形式和日志的输出路径 ...

  9. Java中直接输出一个类的对象

    例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...

随机推荐

  1. centos7最小版本安装nginx+tomcat+java+mysql运行环境

    最近项目从windows搬到linux,由于项目组成员有限并且有其它紧急的任务需要处理,因而这个任务就落到我的头上了.下面记录下centos最小版本安装nginx+tomcat+mysql+java的 ...

  2. properties配置文件的读取和写入

    /** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...

  3. winrt获取文件MD5码

    //小文件 public static string ComputeMD5(byte[] bytes) { var alg = HashAlgorithmProvider.OpenAlgorithm( ...

  4. java入门 第三季2

    java中的字符串 java中的常用类

  5. pgbouncer介绍

    一.Pgbouncer 的介绍 Pgbouncer是一个针对PostgreSQL数据库的轻量级连接池,任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL 服务器来连接,然后pgb ...

  6. MyEclipse8.5可用注册码(到2018年)

    转载自:http://blog.csdn.net/z123252520/article/details/45873159 Subscriber:zy Subscriber Code:mLR8ZC-85 ...

  7. 实现Windows Phone 8中ListBox的分页加载

    功能就是ListBox滚动到最下方的时候,能够自动加载下一页的内容. 解决问题的关键就是如何判断ListBox已经加载到了最底部. 网上找了两个解决方法: 1 http://googlers.itey ...

  8. windows服务

    .net windows 服务创建.安装.卸载和调试   原文:http://www.cnblogs.com/hfliyi/archive/2012/08/12/2635290.html 我对例子做了 ...

  9. IOS开发中与设计沟通之字体大小转换

    px:相对长度单位.像素(Pixel).pt:绝对长度单位.点(Point).1in = 2.54cm = 25.4 mm = 72pt = 6pc 具体换算是: Points Pixels Ems ...

  10. MFC 使用MFC EditBrowse Control控件选择文件或者文件夹

    从工具箱中拖拽一个MFC EditBrowse Control到窗体中, 通过设置“Browse Mode”属性指定“文件浏览”还是“文件夹浏览” 可以通过添加对象的方式将其与一个CString se ...