(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. ACM/ICPC 之 DFS范例(ZOJ2412-ZOJ1008)

    通过几道例题简单阐述一下DFS的相关题型 ZOJ2412-Farm Irrigation 直观的DFS题型,稍加变化,记录好四个方向上的通路就能够做出来 题目和接水管类似,问最少要灌溉几次,即求解最少 ...

  2. Ubuntu ( Linux) Eclipse 乱码问题

    刚装完Ubuntu,导入Java和Android项目时,发现字符乱码,究其原因,是由于Windows下使用的是GBK编码,而Ubuntu使用的是UTF-8编码.网上查找了相关资料,主要解决方案有两种. ...

  3. zookeeper windows 入门安装和测试

    一.序言       以下是我对zookeeper 的一些理解:       zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”. 栗子1号: 假设我是一家 ...

  4. 前台js分页,自己手写逻辑2

    //设置分页 var pageSize = 10; //设置一次显示多少页 var pageLimit = 5; $(function(){ $.post("rest/rtdbfix/lis ...

  5. phpexcel生成excel并下载

    Loader::import('PHPExcel.Classes.PHPExcel'); // tp5中只需将phpexcel文件放入extend文件夹中,即可采用该方法引入,需要先 use thin ...

  6. CUDA中并行规约(Parallel Reduction)的优化

    转自: http://hackecho.com/2013/04/cuda-parallel-reduction/ Parallel Reduction是NVIDIA-CUDA自带的例子,也几乎是所有C ...

  7. 移动端hrml模板

    <!DOCTYPE html><html><head> <title>时钟</title> <meta charset="u ...

  8. C语言中一个替换 strcpy的极好的方法

    在C语言中有个方法:strcpy() 使用时经常容易内存申请不足,或是没有申请内存导致,复制的时候报错,我新写了一个方法,弥补这个缺陷 char *strcpy1(char *strDes, char ...

  9. Cocoapods的安装报错 - Error installing pods:activesupport requires Ruby version >=2.2.2

    1.打开终端 2 移除现有 Ruby 默认源 输入以下指令 $gem sources --remove https://rubygems.org/ 3.使用新的源 输入以下指令 $gem source ...

  10. iOS - 富文本AttributedString

    最近项目中用到了图文混排,所以就研究了一下iOS中的富文本,打算把研究的结果分享一下,也是对自己学习的一个总结. 在iOS中或者Mac OS X中怎样才能将一个字符串绘制到屏幕上呢?         ...