素数的定义
如果一个正整数p只有两个因子1和p,则称p为素数。
素数算法实现一
public boolean isPrime1(int n) { //判断一个数字是否为质素:时间复杂度为O(n)
if (n < 2)
return false;
for (int i = 2; i < n; ++i)
if (n % i == 0)
return false;
return true;
}
素数算法实现二
public boolean isPrime2(int n) { //改进法:去掉偶数的判断,时间复杂度为O(n/2)
if (n < 2)
return false;
if (n == 2)
return true;
if (n % 2 == 0)
return false;
for (int i = 3; i < n; i += 2)
if (n % i == 0)
return false;
return true;
}
素数算法实现三
/**
* 如果n不是素数, 则n有满足1< d<=sqrt(n)的一个因子d,
* 如果n不是素数, 则n有满足1< d<=sqrt(n)的一个因子d。
* @param n
* @return
*/
public boolean isPrime3(int n) {
if (n < 2)
return false;
if (n == 2)
return true;
if (n % 2 == 0)
return false;
for (int i = 3; i * i <= n; i += 2)
if (n % i == 0)
return false;
return true;
}