当前位置:首页 > Java

java 如何判断素数

2026-02-05 07:13:21Java

判断素数的基本方法

素数是大于1的自然数,且只能被1和自身整除。在Java中,可以通过以下方法实现素数判断:

方法1:基础循环判断

通过遍历2到n-1之间的所有整数,检查是否能被n整除。若存在能整除的数,则n不是素数。

public 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-1,只需检查2到√n之间的整数。若n能被大于√n的数整除,其对应的因子必然小于√n。

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

方法3:进一步优化(跳过偶数)

除2外,所有偶数都不是素数。可以跳过偶数以减少循环次数。

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

测试示例

调用上述方法并输出结果:

java 如何判断素数

public static void main(String[] args) {
    int num = 17;
    System.out.println(isPrimeFurtherOptimized(num)); // 输出 true
}

注意事项

  • 输入需为正整数,负数和0、1直接返回false
  • 对于大数(如Integer.MAX_VALUE),优化后的方法效率更高。
  • 更高效的算法(如Miller-Rabin素性测试)适用于极大数,但实现复杂度较高。

分享给朋友:

相关文章

react如何判断渲染完成

react如何判断渲染完成

判断 React 渲染完成的常用方法 使用 useEffect Hook 在函数组件中,useEffect 是监听渲染完成的常用方式。通过传递空依赖数组 [],可以确保回调仅在组件挂载后执行一次:…

如何判断react加载完成

如何判断react加载完成

判断 React 组件加载完成的方法 使用 componentDidMount 生命周期方法 在类组件中,componentDidMount 是组件挂载到 DOM 后触发的生命周期方法。在此方法内执行…

react如何判断卡片的高度

react如何判断卡片的高度

判断卡片高度的方法 在React中,可以通过多种方式获取卡片元素的高度。以下是几种常见的方法: 使用useRef和useEffect钩子 通过useRef获取DOM节点的引用,结合useEffec…

react 如何判断卡片的高度

react 如何判断卡片的高度

获取卡片高度的常用方法 在React中,可以通过以下几种方式获取卡片(或任意DOM元素)的高度: 使用useRef和useEffect钩子 import React, { useRef,…

react中如何判断数据的更新

react中如何判断数据的更新

判断数据更新的方法 在React中,判断数据是否更新可以通过多种方式实现,具体取决于使用的状态管理方式和场景需求。 使用useEffect依赖数组 通过useEffect的依赖数组监听特定状态或属性…

react如何判断是刷新页面的

react如何判断是刷新页面的

判断页面刷新的方法 在React中,可以通过监听浏览器的beforeunload事件或检查performance.navigation属性来判断页面是否被刷新。以下是几种常见的方法: 使用befor…