当前位置:首页 > Java

java 如何编写素数

2026-03-22 21:52:39Java

判断素数的方法

素数是大于1的自然数,且只能被1和它本身整除。在Java中,可以通过多种方法判断或生成素数。

java 如何编写素数

基础判断方法

使用循环检查从2到该数的平方根范围内是否有能整除的数。若没有,则该数为素数。

java 如何编写素数

public static boolean isPrime(int num) {
    if (num <= 1) {
        return false;
    }
    for (int i = 2; i <= Math.sqrt(num); i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

优化方法(埃拉托斯特尼筛法)

适用于生成一定范围内的所有素数。通过标记非素数的方式筛选素数。

public static void sieveOfEratosthenes(int n) {
    boolean[] isPrime = new boolean[n + 1];
    Arrays.fill(isPrime, true);
    isPrime[0] = false;
    isPrime[1] = false;

    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 + " ");
        }
    }
}

示例调用

public static void main(String[] args) {
    int number = 29;
    if (isPrime(number)) {
        System.out.println(number + " 是素数");
    } else {
        System.out.println(number + " 不是素数");
    }

    System.out.println("30以内的素数:");
    sieveOfEratosthenes(30);
}

输出结果

29 是素数
30以内的素数:
2 3 5 7 11 13 17 19 23 29

注意事项

  • 基础方法适用于单个数的判断,时间复杂度为O(√n)。
  • 筛法适用于批量生成素数,时间复杂度为O(n log log n),但空间复杂度较高。
  • 对于极大数的素数判断,可能需要更高效的算法(如Miller-Rabin测试)。

标签: 素数java
分享给朋友:

相关文章

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…

java如何创建测试类

java如何创建测试类

创建测试类的基本步骤 在Java中创建测试类通常使用JUnit框架,以下是具体方法: 安装JUnit依赖 对于Maven项目,在pom.xml中添加依赖: <dependency>…

如何升级java

如何升级java

检查当前Java版本 在升级之前,需确认当前安装的Java版本。在终端或命令提示符中运行以下命令: java -version 输出会显示当前Java版本(如1.8.0_301或17.0.2)。…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…