42-Java编程案例二:找素数

该代码实例演示了如何在Java中判断101到200之间哪些数是素数。通过定义一个isPrimeNumber方法,使用for循环遍历指定范围内的每个数,并检查是否有其他数能整除它来确定素数。最终输出了这一范围内所有的素数。
摘要由CSDN通过智能技术生成

案例二:找素数

  • 需求:

    • 判断 101-200 之间有多少个素数,并输出所有素数。
  • 分析:

    • 素数又叫质数:是除了 1 和 它本身 之外,不能被其它正整数整除。

    • 举例寻找思路:

      7 = 1*7 // 素数
      8 = 1*8, 2*4  // 不是素数,是合数
      9 = 1*9, 3*3  // 不是素数,是合数
      10		 // 既不是素数,也不是合数
      
  • 实现:

  1. 定义一个判断素数的方法isPrimeNumber,设置两个形参:int startNumber, int endNumber ——>用于分别接收开始数和结束数
  2. 定义一个for循环,找到开始数到结束数之间的全部数
  3. 立一个flag——>信号位:标记,假设一开始就认为遍历出的这个数是素数
  4. 为了验证这个flag,判断该数到底是不是素数,规则是:从2开始遍历到该数的一半的数,看是否有数可以整除它,有则不是素数,没有则是素数
  5. 循环验证结束后,发现没有数可以整除它,是素数并输出
  6. 调用方法,传递一个开始数和一个结束数给形参:startNumber, endNumber
package com.app.demo;

/**
    案例二:找素数
         - 需求:
            - 判断 101-200 之间有多少个素数,并输出所有素数。
         - 分析:
            - 素数又叫质数:是除了 1 和 它本身 之外,不能被其它正整数整除。
            - 举例寻找思路:
                7 = 1*7 // 素数
                8 = 1*8, 2*4  // 不是素数,是合数
                9 = 1*9, 3*3  // 不是素数,是合数
                1 和 0		 // 既不是素数,也不是合数
 */
public class Test2 {
    // 1. 定义一个判断素数的方法isPrimeNumber,设置两个形参:int startNumber, int endNumber ——>用于分别接收开始数和结束数
    public static void isPrimeNumber(int startNumber, int endNumber) {
        System.out.print(startNumber + "~" + endNumber + "之间的全部素数: ");
        
        // 2.定义一个for循环,找到开始数到结束数之间的全部数
        for (int i = startNumber; i <= endNumber; i++) {
            // i = 101 102 103 ... 199 200

            // 3. 立一个flag——>信号位:标记,假设一开始就认为遍历出的这个数是素数
            boolean flag = true;

            // 4. 为了验证这个flag,判断该数到底是不是素数,
            for (int j = 2; j < i / 2; j++) {   // 规则:从2开始遍历到该数的一半的数,
                if (i % j == 0) {   // 看是否有数可以整除它,有则不是素数,没有则是素数
                    flag = false;   // 发现有数可以整除它,表示不是素数
                    break;          // 跳出并结束当前for循环
                }
            }

            // 5. 循环验证结束后,发现没有数可以整除它,是素数并输出
            if (flag) {
                System.out.print(i + "\t");
            }
        }
    }

    public static void main(String[] args) {
        // 6. 调用方法,传递一个开始数和一个结束数给形参:startNumber, endNumber
        isPrimeNumber(101, 200);
    }
}
输出结果:

101~200之间的全部素数: 101	103	107	109	113	127	131	137	139	149	151	157	163	167	173	179	181	191	193	197	199	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值