质数是只有一和它本身才能被除尽的一类数,输出100以内的质数本质还是循环嵌套

首先,外层循环遍历100以内的自然数,因为1不是质数,所以从2开始,内层循环从1开始到自己本身结束,每个数都被i除一次,这里我们反其道而行之,我们先定义一个布尔类型的变量isFlag赋值为true,如果在内层循环的时候 i 除以 j 的时候出现了i%j==0的情况也就是出现了除了 i 自己和1以外其他的约数,就给isFlag赋值false,相当于贴了一个标签,说明当此循环的i不是质数。然后我们在接下来的判断过程中,当isFlag为true时,在外层循环里输出i的值,这样就可以输出符合条件的质数.

代码如下

import java.util.Scanner;
public class zhishu {public static void main(String[] args) {long start=System.currentTimeMillis();for(int i=2;i<=100;i++) {boolean isFlag=true;for(int j=2;j<i;j++) {if(i%j==0) {isFlag=false;}}if(isFlag==true) {System.out.println(i);}}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start));}
}}
}

运行结果如下:

接下来是算法的优化:我们从内层循环入手,i%j==0的时候,将faluse 赋给Flag以后,说明这个数已经判断不是质数了,我们也没有判断下去的必要了,所以我们在其后加上break

代码如下:

public class zhishu1 {public static void main(String[] args) {long start=System.currentTimeMillis();for(int i=2;i<=10000;i++) {boolean isFlag=true;for(int j=2;j<i;j++) {if(i%j==0) {isFlag=false;break;}}if(isFlag==true) {System.out.println(i);}}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start));}
}

100的对比不明显,我们将数量增加到10000

结果如下

可以很明显的看到时间减少了很多

我们还可以再优化,也就是我们没必要从1到10000遍历,我们可以从1到它的平方根就可以(这里涉及数学知识,小郭不太行,等我学会了回来解释)

代码如下:

public class zhishu2 {public static void main(String[] args) {long start=System.currentTimeMillis();for(int i=2;i<=10000;i++) {boolean isFlag=true;for(int j=2;j<=Math.sqrt(i);j++) {if(i%j==0) {isFlag=false;}}if(isFlag==true) {System.out.println(i);}}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start));}
}

结果如下

所用的时间更少了

在以后的编程中会有很多特别大的数,为了使程序能够平稳运行,我们要尽可能的进行优化.

Java 循环嵌套问题三:100以内质数的输出以及优化(笔试题)相关推荐

  1. 采用数组实现斐波那契数列的计算、foreach循环的使用、100以内质数的判断

    想要实现斐波那契数列的计算,我们首先得了解斐波那契数列的定义及其原理: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称 ...

  2. 1000以内完数、100以内质数 java

    1000以内完数: 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3. (因子除去这个数本身的其他约数) //方法一:利用根号i作为范围for (int i ...

  3. java求100以内质数

    质数:只能被1和它本身整除的数 求:100以内质数 思路:利用标记思想 public class test4 {public static void main(String[] args) {for ...

  4. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  5. python求100以内质数以及合数

    质数有哪些?如何用python求质数?合数有哪些?这一次,我们做一个100以内质数生成器吧! z=[]#质数列表 h=[]#合数列表 for i in range(2,100+1):#循环2-100a ...

  6. java while语句打印三角形_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  7. 一百以内质数的输出。(java)

    方法1: public class 一百以内质数的输出 {// 100以内的所有的质数输出// 只能被1和本省整除的自然数// 从2开始,到这个数结束为止,都不能被这个数整除的public stati ...

  8. 编写一个找出100以内质数的程序

    质数即除了1和本身而没有别的约数:而合数刚好与质数相反. 用javascript写出找出100以内质数的程序如下: 用浏览器运行后打开,可以在控制台看到运行结果如下: 当然,如果我们想找100以内的合 ...

  9. 实现100以内的素数输出(Python与C++对比)

    今天从链接http://www.2cto.com/kf/201302/187699.html中看到了Python实现100以内的素数输出的算法,颇受感触.尤其是被其中的Python的列表生成器的使用方 ...

最新文章

  1. Openoffice添加页脚页码页数页眉
  2. 老域名优化出新招,三点技巧来相助
  3. Servlet3.0新特性
  4. 【千字分析】剑指 Offer 46. 把数字翻译成字符串
  5. 讲讲volatile的作用
  6. .NET Core 中导入导出Excel
  7. 7种常用的数据标注工具
  8. wav音频文件转为c语言代码程序 1.0 简体绿色版,WAV音频单声道提取工具下载
  9. PR短视频特效转场 快速画面分割视频转场过渡PR转场模板
  10. mysql 建表 game_RPG游戏数据库设计
  11. sysfader iexplore 应用程序错误问题解决方法.
  12. matlab control包,免费试用Instrument Control Toolbox
  13. Firefox的下载经管器:FlashGot v1.0 Final发布
  14. Lua 源码学习笔记(2)字符串
  15. PyTorch(二次元头像--GAN实战)
  16. 解决Flash Helper Service老是弹出流氓广告
  17. 《老路用得上的商学课》21-30学习笔记
  18. JAVA实体Do-Dto转换类 Converter
  19. css 动画如何保持最终的状态
  20. 点云的基本特征和描述

热门文章

  1. 阿里云短信验证码注册及使用
  2. Android:看完这篇文章,我终于理解了漫游是怎么回事
  3. 作为品牌方你在采媒宝找知乎MCN机构做知乎推广?那么本文将对你有帮助了
  4. java http post数组参数_java - 适用于Java / Android的HTTP POST数组参数 - 堆栈内存溢出...
  5. Springboot整合Mybatis框架
  6. 关于 Adobe Mac版 总是提示需要访问钥匙串中的密钥解决方法
  7. “一斗穷,二斗富”是什么意思,中科院发现关于指纹的基因奥秘
  8. Elasticsearch Term Vectors(词频统计)
  9. Android开发——创建新的activity
  10. Sublime Text 相关教程(转)