zoukankan      html  css  js  c++  java
  • 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数

    能解决题目的代码并不是一次就可以写好的
    我们需要根据我们的思路写出后通过debug模式找到不足再进行更改
    多次测试后才可得到能解决题目的代码!
    通过学习,练习【Java基础经典练习题】,让我们一起来培养这种解决问题思路。

    第一题:判断2-100之间有多少个素数,并输出所有素数。

    1.视频讲解:

    求2-100之间素数思路
    求2-100之间素数代码详解

    2.思路分析:

    Q1:什么是素数?
    A1: 素数(质数)指的是在大于1的自然数除了1该数本身外无法被其它自然数整除的数。(也就是说一个数只有1和它本身两个因数

    Q2:如何判断一个数有除了1和该数本身之外的因数?
    A2:让我们以4为例来分析:

    • 判断4能否整除一个数,无非只有以下4种情况:
      情况1:4/1
      情况2:4/2
      情况3:4/3
      情况4:4/4

    • 那么我们又知道:每个数都有1 和 它本身这两个因数(即每个数都可以被1和它本身整除)
      所以呢我们在【判断4能否整除一个数】就只需要考虑以下这两种情况:
      情况2:4/2
      情况3:4/3

    • 由此我们可以总结出来规律:
      判断一个数是否有其它因数,就让这个数去除[2-(需判断的数-1)]这个范围内的数
      如判断4就只需看:4/2、4/3

    • 看这两种情况中是否有整除情况发生:
      则说明此数不为素数,就进行下一次判断
      没有说明此数为素数,需输出此数,并让保存【素数个数的变量】加1后再进行下一次判断。

    3.代码+详解+答案:

    package Exercise;
    
    public class SuShu1 {
    
    	public static void main(String[] args) {
    		int i = 0;
    		int j = 0;
    		int count = 0;//储存2-100之间的素数个数
    		boolean flag = true;
    //用处:在当一个数有【除1和它本身之外的因数】时,使其值变为false,以便进入下一次循环
    		for (i = 2; i <= 100; i++) {//从2-100开始进行循环
    			flag = true;
    //每完成一次for循环需要把flag值重新置为true,否则将会影响下次的循环
    			for (j = 2; j < i; j++) {
    //用此for循环的数字来判断i是否有【除1和它本身之外的因数】
    				if (i % j == 0) {//如果i%j==0,说明i有【除1和它本身之外的因数】
    					flag = false;//这时让flag = false;
    					break;//并退出这个双重for循环
    				}
    			}
    			if (flag == true) {
    //从双重for循环退出后,判断flag的值是否是true,若为true则说明此数为素数
    				count++;//存储素数的总和加1
    				System.out.println("从2-100之间的素数有:" + i);//输出素数结果
    			}
    		}
    		System.out.println("从2-100之间的素数个数有:" +count);//输出素数总个数
    	}
    
    }
    
    

    代码讲解:以i=4为例

    1. i=4 4<100
    2. flag = true
    3. j=2 ,2<4
    4. 因为i%j == 0(即4%2 == 0)所以flag = false。并执行break语句。
    5. 执行break语句后就退出第二个for循环。(执行break语句后,break语句后面的代码不会执行并且会终止本层循环)
    6. 因为现在的flag ==false不满足if(flag == true)条件
    7. 所以i++ i=5,进入下一次的判断

    结果:
    在这里插入图片描述

    4.为大家准备了彩蛋:

    在这里插入图片描述

  • 相关阅读:
    js操作cookie
    非常好的前端报表控件,值得收藏一下
    html5 跳到拨打电话功能
    C# 判断客户端是PC还是手机登录
    Oracle RAW类型使用
    多条Json数据转换为泛型数据
    将指定的对象序列化成 JSON 数据。
    ASP.NET MVC4(Razor)从客户端中检测到有潜在危险的 Request.Form 值
    http://v3.bootcss.com/getting-started/
    SQL日期比较 .
  • 原文地址:https://www.cnblogs.com/Qpgshare/p/12516390.html
Copyright © 2011-2022 走看看