首页 > 编程知识 正文

java怎样判断素数,Java判断是否是素数

时间:2023-05-03 22:40:52 阅读:218387 作者:3686

素数就是质素,英文是Prime Number。

概念:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数称之为素数。否则称之为合数。

下面是java判断素数的几种方法:

/**

* 时间复杂度O(n)

*

* @param n

* @return

*/

public static boolean isPrime0(int n) {

if (n < 2)

return false;

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

if (n % i == 0)

return false;

}

return true;

}

/**

* 时间复杂度O(n/2)

*

* @param n

* @return

*/

public static boolean isPrime1(int n) {

if (n < 2)

return false;

//偶数一定不是素数,去掉偶数

if (n == 2)

return true;

if (n % 2 == 0)

return false;

//从3开始

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

if (n % i == 0)

return false;

}

return true;

}

/**

*

* 时间复杂度O(Math.sqrt(n))

*

* @param n

* @return

*/

public static boolean isPrime2(int n) {

if (n < 2)

return false;

//判断指定数的平方根内的数

for (int i = 2; i <= Math.sqrt(n); i++) {

if (n % i == 0)

return false;

}

return true;

}

/**

* 时间复杂度O(Math.sqrt(n)/2),效率最好

*

* @param n

* @return

*/

public static boolean isPrime3(int n) {

if (n < 2)

return false;

//偶数一定不是素数,去掉偶数

if (n == 2)

return true;

if (n % 2 == 0)

return false;

//从3开始,判断指定数的平方根内的数

for (int i = 3; i <= Math.sqrt(n); i++) {

if (n % i == 0)

return false;

}

return true;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。