尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

prime numbers

prime numbers
📅 发布时间:2026/6/18 15:42:44

一、什么是素数
素数(Prime Number),又称质数,是指在大于1的自然数中,只能被1和它本身整除的数。
例如:
2、3、5、7、11、13、17、19...
都是素数。
而下面这些数不是素数:
4 = 2 × 2
6 = 2 × 3
8 = 2 × 4
9 = 3 × 3
因为它们除了1和自身外,还能被其他整数整除。
二、素数的特点

  1. 1不是素数
    因为素数必须恰好有两个正因数:
    1 和自身
    而数字1只有一个因数:
    1
    因此:
    1 不是素数

  2. 2是唯一的偶数素数
    除了2以外:
    4、6、8、10...
    都能被2整除,因此不是素数。
    所以:
    2 是唯一的偶数素数

  3. 所有素数只能被1和自身整除
    例如:
    13
    它只能被:
    1 和 13
    整除。
    三、判断素数的基本思路
    判断一个数字n是否为素数:
    方法一:逐个试除
    检查:
    2 ~ n-1
    之间是否存在能整除n的数。
    例如判断13:
    13 ÷ 2
    13 ÷ 3
    13 ÷ 4
    ...
    13 ÷ 12
    如果都不能整除,则13是素数。
    Java实现
    public class PrimeTest {
    public static void main(String[] args) {

    int n = 13;
    boolean isPrime = true;

    for(int i = 2; i < n; i++) {
    if(n % i == 0) {
    isPrime = false;
    break;
    }
    }

    if(isPrime) {
    System.out.println(n + "是素数");
    } else {
    System.out.println(n + "不是素数");
    }
    }
    }
    运行结果:
    13是素数
    四、优化算法
    实际上不需要检查到:
    n - 1
    只需要检查到:
    √n
    即可。
    原理
    假设:
    n = a × b
    如果:
    a > √n
    并且
    b > √n
    那么:
    a × b > n
    矛盾。
    因此:
    至少有一个因子小于等于√n
    只需检查到平方根即可。
    优化后的代码
    public class PrimeTest {
    public static void main(String[] args) {

    int n = 97;
    boolean isPrime = true;

    for(int i = 2; i <= Math.sqrt(n); i++) {
    if(n % i == 0) {
    isPrime = false;
    break;
    }
    }

    if(isPrime) {
    System.out.println(n + "是素数");
    } else {
    System.out.println(n + "不是素数");
    }
    }
    }
    五、输出100以内所有素数
    实现思路
    外层循环:
    2~100
    依次判断。
    内层循环:
    检查是否存在因子
    Java代码
    public class PrimeNumbers {

    public static void main(String[] args) {

    for(int num = 2; num <= 100; num++) {

    boolean isPrime = true;

    for(int i = 2; i <= Math.sqrt(num); i++) {
    if(num % i == 0) {
    isPrime = false;
    break;
    }
    }

    if(isPrime) {
    System.out.print(num + " ");
    }
    }
    }
    }
    运行结果:
    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
    六、埃拉托斯特尼筛法
    当需要寻找大量素数时,可以使用更高效的算法:
    筛法思想
    以100以内素数为例:
    首先写出:
    2~100
    然后:
    保留2
    删除2的倍数
    保留3
    删除3的倍数
    保留5
    删除5的倍数
    不断重复。
    最后剩余的数字就是素数。
    Java实现
    public class SievePrime {

    public static void main(String[] args) {

    int n = 100;

    boolean[] isPrime = new boolean[n + 1];

    for(int i = 2; i <= n; i++) {
    isPrime[i] = true;
    }

    for(int i = 2; i * i <= n; i++) {

    if(isPrime[i]) {

    for(int j = i * i; j <= n; j += i) {
    isPrime[j] = false;
    }
    }
    }

    for(int i = 2; i <= n; i++) {
    if(isPrime[i]) {
    System.out.print(i + " ");
    }
    }
    }
    }
    七、学习总结
    素数是数学和计算机科学中的重要概念。通过学习素数的定义、判断方法以及埃拉托斯特尼筛法,我掌握了如何利用Java程序判断一个数是否为素数,以及如何高效地求解一定范围内的所有素数。
    在编程实践中,普通试除法适用于小规模数据,而筛法适用于大规模素数求解。通过本次学习,我进一步提高了Java循环结构、条件判断以及算法优化方面的能力,也加深了对数论基础知识的理解。

相关新闻

  • 2026 长沙手表回收最新行情,逸程更新热门品牌实时回收报价 - 逸程
  • G11Z工业胶粘剂产品特性与正规代理筛选指南 - 资讯速览
  • 合肥本地中职中专升本率最突出的五大名校2026秋季招生名单一览 - 小途xt

最新新闻

  • 跨境独立站用户行为统计模块全栈开发:多维度用户分层数据可视化落地
  • 【MCP】MCP: The USB-C of AI
  • K2.6国产编程模型:首个支持全栈交付的AI工程智能体
  • 2026年上海防水补漏服务商选型指南:从漏点诊断到质保保障的完整避坑手册 - 精选优质企业推荐官
  • 济南全屋定制推荐:三分产品七分安装,这些品牌的安装售后最有保障 - 济南原息康养定制
  • 在Docker容器中运行Virtual DSM的完整指南:从部署到高级配置

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号