当前位置: 首页 > news >正文

Java 质数 (prime numbers) 算法实现

一、题目

编写 Java 程序,查找指定范围内的所有质数(素数),质数定义:大于 1,除了 1 和自身,不能被其他自然数整除的整数。

二、质数原理说明

  1. 质数n≥2,2 是最小质数,偶数除 2 以外全不是质数;
  2. 优化判断:只需遍历2 ~ √n,若区间内没有能整除 n 的数,则 n 为质数(因数成对出现,超过平方根无需校验)。

三、Java 代码

public class PrimeDemo { public static void main(String[] args) { // 查找1~100之间所有质数 int max = 100; System.out.println("1~"+max+"之间的质数:"); for(int num = 2; num <= max; num++){ if(isPrime(num)){ System.out.print(num + " "); } } } /** * 判断一个数是否为质数 * @param n 待判断数字 * @return 是质数返回true,否则false */ public static boolean isPrime(int n){ if(n < 2){ return false; } // 遍历2到根号n double sqrt = Math.sqrt(n); for(int i = 2; i <= sqrt; i++){ if(n % i == 0){ // 能被整除,不是质数 return false; } } return true; } }

四、代码解析

  1. isPrime(int n)工具方法
    • 小于 2 直接非质数;
    • 循环上限取√n,大幅减少循环次数,优化性能;
    • 只要存在约数立刻返回false,遍历结束无约数返回true
  2. main 主方法:循环遍历2~max,调用判断方法,输出所有质数。

五、运行结果

1~100之间的质数: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

六、进阶优化思路(博客拓展内容)

  1. 埃氏筛法(高效批量找质数):适合超大范围批量筛选,用布尔数组标记合数,速度远优于逐个判断:
// 埃拉托斯特尼筛法示例 public static void sievePrime(int limit){ boolean[] isPrimeArr = new boolean[limit+1]; // 初始默认全部是质数 Arrays.fill(isPrimeArr,true); isPrimeArr[0] = isPrimeArr[1] = false; for(int i=2; i<=Math.sqrt(limit);i++){ if(isPrimeArr[i]){ // i的倍数全部标记为非质数 for(int j=i*i; j<=limit; j+=i){ isPrimeArr[j]=false; } } } // 输出质数 for(int i=2;i<=limit;i++){ if(isPrimeArr[i]) System.out.print(i+" "); } }
  1. 适用场景:小范围用逐个判断法,十万 / 百万级大范围优先埃氏筛。

七、总结

  1. 基础质数判断核心:平方根优化循环边界,减少冗余运算;
  2. 两种实现方案:单个数校验、批量筛质数,按需选用;
  3. 面试常考点:质数算法优化、埃氏筛原理。
http://www.jsqmd.com/news/957480/

相关文章:

  • 亚马逊儿童玩具车F963-23标准
  • LeetCode 274 · H 指数:排序后一条规则搞定
  • 深圳艾景特科技:开发者猫叔如何打造面向中国市场的 AI 投研产品
  • Veo 2额度用得快?不是你生成多,而是没关这1个默认开关(实测降低76%无效消耗)
  • 记录AAAAA
  • TypeScript 从零基础到上岗就业超全学习指南(2026最新)
  • 2026年东莞办公设备租赁配套服务商盘点:复印机/打印机/电脑租赁、整机组装与监控安装企业参考 - 海棠依旧大
  • 联想刃7000K终极BIOS解锁完整指南:简单三步释放硬件全部潜力
  • 2026年 螺母厂家推荐榜单:六角胶头螺母/蝶形螺母/手拧螺母/K型螺母/防松螺母及锁紧螺母厂家深度解析 - 品牌企业推荐师(官方)
  • 2026年广州搬家公司行业白皮书:监管落地与消费升级下的正规服务商全测评 - 生活服务
  • PoE网络变压器中共模扼流圈(CMC)的放置与磁饱和问题解析
  • 终极指南:5分钟让Axure RP说中文,告别英文界面烦恼
  • 某中学sql注入漏洞
  • 如何高效配置OpenCore引导器:PC运行macOS的完整方案指南
  • VidDown:一个免费、本地优先的在线工具站(重点:视频解析下载)
  • 从数字疲劳到个性表达:如何用光标重塑你的桌面叙事
  • 多维聚合实战:从SQL ROLLUP到Pandas链式分析
  • Rustix库:Rust 系统编程 的 基石
  • 2026年 分度销厂家推荐排行榜:压入式/法兰型/拉环/焊接/按压/T型/自锁/L型/不锈钢凸轮式分度销品牌精选与选购指南 - 品牌企业推荐师(官方)
  • Python信用评分卡终极指南:从零开始构建专业风险模型
  • Qt 6.0安装后第一件事:用Qt Creator创建你的第一个Hello World程序(Windows平台)
  • 【每日一题】LeetCode 70. 爬楼梯 TypeScript
  • 苹果供应链管理:从JIT到产能买断的工程实践与启示
  • 如何用LibreSignage快速构建企业级数字标牌系统
  • 机器人领域简报(2026年5月29日—6月4日)
  • 2026沈阳和平区防水补漏哪家好?住建实地测评权威榜单TOP5|卫生间免砸砖/阳台屋顶/厨卫漏水维修(6月和平区专项调研) - 苏易修缮
  • 3步解锁你的加密音乐:Unlock-Music浏览器解密工具完全指南
  • # 2026年了,你还在手写每一行代码?Vibe Coding 正在颠覆软件开发
  • SuperCLIP:细粒度图像文本对齐的技术突破与应用
  • 深圳劳动纠纷律师支招:企业规章制度合规制定避坑指南 - 从来都是英雄出少年