JAVA判断素数的三种方法

news/2024/10/5 3:27:44 标签: java, 开发语言

说明:除了1和它本身以外,不能被其他正整数整除,就叫素数

方法1:

java">package ZY;

public class Test7法1 {
    //目标;找素数,方法1
    public static void main(String[] args) {
    int num1 = 101;
    int num2 = 200;
   int count =  find(num1, num2);
   System.out.println("一共有"+count+"个素数");
    }
    //定义一个找素数的方法
    public static int find(int num1 ,int num2) {
        int count = 0;//统计一共多少个素数的变量
        //遍历数字,从num1开始到num2结束
        for (int i =num1;i<=num2;i++){
            // 信号位思想
            boolean flag = true;// 假设的意思:默认认为当前i记住的数据是素数。
            //判断每个数字是不是素数
            //判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;
            for (int j = 2;j<=i/2;j++){
                if (i%j==0){//要是这个数字能够被j中的数字整除则不是素数
                    flag = false;//不为素数不被记住
                    break;//并且结束此次内部循环
                }
            }
            if (flag){//若为素数,flag=true并打印
                System.out.println(i);
                count++;//统计多少个素数
            }
        }
        return count;
    }
}

法2 

java">package ZY;

public class Test7法2 {
    //目标;找素数,利用指定标签
    public static void main(String[] args) {
        int num1 = 101;
        int num2 = 200;
        int count =  find(num1, num2);
        System.out.println("一共有"+count+"个素数");
    }
    //定义一个找素数的方法
    public static int find(int num1 ,int num2) {
        int count = 0;//统计一共多少个素数的变量
        //遍历数字,从num1开始到num2结束
        OUT: // 为外部循环指定标签OUT可以自己指定
        for (int i =num1;i<=num2;i++){
            //判断每个数字是不是素数
            //判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;
            for (int j = 2;j<=i/2;j++){
                if (i%j==0){//要是这个数字能够被j中的数字整除则不是素数
                   //进入这个地方的i就不是素数
                    continue OUT;//结束外部循环的当次执行!
                }
            }
                System.out.println(i);
                count++;//统计多少个素数
        }
        return count;
    }
}

法3:

java">package ZY;

public class Test7法3 {
    //目标;找素数,方法3利用多方法定义
    public static void main(String[] args) {
        int count = 0;//定义计数变量
        for (int i = 101; i <= 200; i++) {//从101到200数字进行遍历
            //定义到方法中去进行判断
            if (Y(i)){//因为定义的是布尔类型,当返回的是true的时候执行一下代码
            System.out.println(i);
            count++;}
        }
        System.out.println("素数个数是"+count);
    }
    public static boolean Y(int n) {
        //遍历判断
        判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;
        for (int i = 2; i <= n/2; i++) {
            if (n % i == 0) {
                return false;//n%i==0故不为素数返回false
            }
        }
        return true;//除了if判断的会直接结束外,不满足if的都是素数
    }
}

 


http://www.niftyadmin.cn/n/5690655.html

相关文章

使用代理IP数据采集都需要注意那些?

“在当今大数据时代&#xff0c;数据采集成为了企业决策和个人研究的重要依据。然而频繁访问目标网站往往会引发IP被封锁的风险&#xff0c;这时使用代理IP就显得尤为重要。但代理IP的使用并非毫无风险&#xff0c;以下是使用代理IP进行数据采集时需要注意的几个关键事项。” 一…

开源AI智能名片在打造人格化品牌平台中的应用:以抖音、快手、微博为例

摘要&#xff1a;本文分析了抖音、快手和微博在打造人格化品牌方面的优势&#xff0c;探讨了开源AI智能名片如何融入这些平台&#xff0c;助力人格化品牌的打造。通过研究不同平台的流量机制和用户特点&#xff0c;阐述开源AI智能名片在适应平台特性、提升品牌影响力方面的潜在…

基于C++和Python的进程线程CPU使用率监控工具

文章目录 0. 概述1. 数据可视化示例2. 设计思路2.1 系统架构2.2 设计优势 3. 流程图3.1 C录制程序3.2 Python解析脚本 4. 数据结构说明4.1 CpuUsageData 结构体 5. C录制代码解析5.1 主要模块5.2 关键函数5.2.1 CpuUsageMonitor::Run()5.2.2 CpuUsageMonitor::ComputeCpuUsage(…

Spring Gateway学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程&#xff1a;封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

07 揭秘Docker容器镜像:封装与加载的艺术

文章目录 07 揭秘Docker容器镜像:封装与加载的艺术一 容器打包 - 镜像二 镜像打包备份三 从备份镜像包进行镜像加载四 通过加载的备份镜像发布容器07 揭秘Docker容器镜像:封装与加载的艺术 一 容器打包 - 镜像 容器提供代码运行环境 + 代码部署完毕 -> ⼀起打包 $ dock…

N32移植sd卡和fatfs 文件系统

简介 http://elm-chan.org/fsw/ff/00index_e.html FATFS 是一个完全免费开源的 FAT/exFAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言(ANSI C C89)编写,所以具有良好的硬件平台独立性,只需做简单的修改就可以移植到 8051、PIC、AVR、ARM、Z80、RX…

【Godot4.3】匀速和匀变速直线运动粒子

概述 本篇论述&#xff0c;如何用加速度在Godot中控制粒子运动。 匀速和匀变速直线运动的统一 以下是匀变速运动的速度和位移公式&#xff1a; v t v 0 a t x t v 0 t 1 2 a t 2 v_tv_0 at \\ x_tv_0t \frac{1}{2}at^2 vt​v0​atxt​v0​t21​at2 当a 0 时&#xf…

C/C++复习(一)

1.sizeof 关于sizeof我们是经常使用的&#xff0c;所以使用方法就不需要提及了&#xff0c;这里我们需要注意的是&#xff0c;sizeof 后面如果是表达式可以不用括号&#xff0c;并且sizeof实际上不参与运算&#xff0c;返回的是内容的类型大小&#xff08;size_t类型&#xff0…