news 2026/6/5 21:07:00

Java 质数 (prime numbers) 算法实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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. 面试常考点:质数算法优化、埃氏筛原理。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 21:06:04

BG3 Mod Manager:彻底解决《博德之门3》模组冲突的智能管家

BG3 Mod Manager&#xff1a;彻底解决《博德之门3》模组冲突的智能管家 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 你是否曾经因为《博德之门3》…

作者头像 李华
网站建设 2026/6/5 20:58:56

苹果新广告调侃Chrome数据追踪,强化Safari隐私定位抢夺敏感用户

苹果新广告&#xff1a;隐喻手法调侃Chrome数据追踪近日&#xff0c;苹果发布了“Privacy on iPhone”系列广告新作“Safari helps block data trackers”。广告中&#xff0c;苹果用极具视觉冲击力的手法&#xff0c;将数据追踪者刻画为身着铬合金&#xff08;暗指“Chrome”&…

作者头像 李华
网站建设 2026/6/5 20:56:46

GoF设计模式——外观模式

本文是【GoF设计模式】系列第9篇前言 为什么需要外观模式&#xff1f; 开发中经常遇到这种情况&#xff1a;一个业务操作需要依次调用多个子系统。比如"启动系统"要先初始化数据库连接、加载配置文件、启动缓存服务、注册定时任务——每个子系统都有自己的接口和调用…

作者头像 李华
网站建设 2026/6/5 20:55:49

ChanlunX缠论插件终极指南:3步实现通达信自动缠论技术分析

ChanlunX缠论插件终极指南&#xff1a;3步实现通达信自动缠论技术分析 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否曾经为复杂的缠论分析感到头疼&#xff1f;面对K线图上密密麻麻的走势&#x…

作者头像 李华
网站建设 2026/6/5 20:54:34

告别Excel手忙脚乱:用R的tidyverse包5分钟搞定GSEA分析前的基因数据整理

基因数据分析革命&#xff1a;tidyverse赋能GSEA预处理全流程实战在生物信息学领域&#xff0c;GSEA&#xff08;基因集富集分析&#xff09;已成为揭示基因功能关联的重要工具。但许多研究者往往在分析的第一步——数据预处理环节就遭遇瓶颈。传统Excel手工操作不仅效率低下&a…

作者头像 李华
网站建设 2026/6/5 20:53:11

AI再聪明,也看不见你板子上的那根飞线

纯应用层开发里&#xff0c;很多问题会以比较清楚的方式出现&#xff1a;接口报错、日志堆栈、异常码、请求超时、数据库连接失败。虽然也复杂&#xff0c;但至少系统愿意给你一些文字证据。嵌入式软件不一样。它经常只给你一个现象。UART 偶发丢一帧。I2C 总线偶尔挂死。ADC 数…

作者头像 李华