质数是只有一和它本身才能被除尽的一类数,输出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. 概要设计阶段--组装测试计划
  2. 【物联网智能网关-15】WAV播放器(WinForm+WavPlay库实例)
  3. 深度优先算法回溯实例
  4. 蓝桥杯2016年第七届JavaC组国赛第一题-平方末尾
  5. html mysql留言板_【网页留言板制作】HTML + CSS + PHP + MySQL 实战
  6. 汽车HUD抬头显示全产业链深度解析报告
  7. 【渝粤题库】陕西师范大学209004道德教育案例研究 作业 (高起专)
  8. 自我管理-贝尔宾团队角色理论
  9. iP138版 离线iP数据库ip.txt导入Mysql示例
  10. 图像融合论文及代码网址整理总结(1)——多聚焦图像融合
  11. 2022年中级会计中级经济学法考试复习题及答案
  12. 通读cheerio API
  13. 激活函数的作用及选择
  14. 化学反应动力学-常见微分方程模型的大一统形式
  15. element UI table合并行合并列(整理)
  16. TryHackMe-Minotaur‘s_Labyrinth
  17. Python案例1—人民币与美元的汇率兑换V_2.0
  18. venus反光柱建图记录
  19. CAM平台数控编程软件功能实例探究
  20. imperva腾讯云waf部署具体过程(转载)

热门文章

  1. AirPods无法连接到苹果Mac怎样解决?
  2. BFD库的使用介绍 nm工具源码分析
  3. UIButton的selected状态
  4. 帆软报表-鼠标悬停改变背景色
  5. Adobe illustrator里边的蒙版是什么概念,怎么理解
  6. Blender 3D 打印插件Print Toolbox
  7. linux,java.net.UnknownHostException:XXX:XXX: Name or service not known
  8. 华为手机备忘录怎么加视频?超多功能的智能备忘录
  9. epubjs阅读器引擎介绍(一)
  10. 一行CSS实现全站中文简繁转换