当前位置:首页 > Java

如何打印素数JAVA

2026-03-23 12:17:15Java

打印素数的Java实现

素数是只能被1和自身整除的自然数。以下是几种在Java中打印素数的方法:

方法1:基础检查法

通过遍历每个数字并检查其是否为素数来实现。对于每个数字n,检查2到n-1之间是否有能整除n的数。

如何打印素数JAVA

public class PrimeNumbers {
    public static void main(String[] args) {
        int limit = 100;
        for (int i = 2; i <= limit; i++) {
            if (isPrime(i)) {
                System.out.print(i + " ");
            }
        }
    }

    private static boolean isPrime(int n) {
        if (n <= 1) {
            return false;
        }
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

方法2:优化检查法

检查范围可以缩小到√n,因为如果n不是素数,它必有一个因数小于或等于√n。

如何打印素数JAVA

private static boolean isPrime(int n) {
    if (n <= 1) {
        return false;
    }
    for (int i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

方法3:埃拉托斯特尼筛法

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

public class SieveOfEratosthenes {
    public static void main(String[] args) {
        int limit = 100;
        boolean[] isPrime = new boolean[limit + 1];
        Arrays.fill(isPrime, true);
        isPrime[0] = isPrime[1] = false;

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

        for (int i = 2; i <= limit; i++) {
            if (isPrime[i]) {
                System.out.print(i + " ");
            }
        }
    }
}

方法4:使用Java 8流式处理

结合流和Lambda表达式实现素数打印。

import java.util.stream.IntStream;

public class PrimeStream {
    public static void main(String[] args) {
        int limit = 100;
        IntStream.rangeClosed(2, limit)
                .filter(PrimeStream::isPrime)
                .forEach(n -> System.out.print(n + " "));
    }

    private static boolean isPrime(int n) {
        return n > 1 && IntStream.rangeClosed(2, (int) Math.sqrt(n))
                .noneMatch(i -> n % i == 0);
    }
}

选择建议

  • 对于小范围素数检查,基础或优化方法足够。
  • 对于大范围素数生成,筛法效率更高。
  • 流式处理适合现代Java编程风格,但性能略低于筛法。

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

相关文章

js  实现现实素数

js 实现现实素数

判断素数的方法 素数是大于1的自然数,除了1和它本身外没有其他约数。在JavaScript中可以通过以下方法判断一个数是否为素数: function isPrime(num) { if…

java 如何判断素数

java 如何判断素数

判断素数的基本方法 素数是大于1的自然数,且只能被1和自身整除。在Java中,可以通过以下方法实现素数判断: 方法1:基础循环判断 通过遍历2到n-1之间的所有整数,检查是否能被n整除。若存在能…

如何下载JAVA

如何下载JAVA

下载Java的方法 访问Oracle官方网站或OpenJDK平台获取Java安装包。Oracle官网提供最新的JDK版本,OpenJDK提供开源版本的Java开发工具包。 Java SE下载页面Op…

JAVA验证码如何验证

JAVA验证码如何验证

JAVA验证码验证方法 验证码验证通常分为生成、存储、用户输入验证三个步骤。以下是常见的实现方法: 生成验证码 使用Java生成随机验证码(数字、字母或混合)并输出为图片或文字: // 生…

java 如何判断素数

java 如何判断素数

判断素数的基本方法 素数是大于1的自然数,除了1和它本身外没有其他约数。以下是几种常见的判断方法: 暴力法(试除法) 通过遍历2到n-1的所有整数,检查是否能整除n。若存在能整除的数,则n不是素…

js实现素数

js实现素数

判断一个数是否为素数 素数是指大于1的自然数,除了1和它本身外,不能被其他自然数整除。以下是一个简单的JavaScript函数来判断一个数是否为素数: function isPrime(nu…