这里我们将介绍几个求素数的算法,和大家一起交流一下
// ① 进行穷举 时间复杂度O(n)
private static boolean primer1(int number) {
for(int i = 2 ; i < number -1 ; i++ ){
if(number%i == 0){
return false ;
}
}
return true;
}
// ② 使用 √n 进行计算 时间复杂度O(√n)
private static boolean primer2(int number) {
// 这里我们使用 i*i 而不使用 Math.sqrt(number) 因为求根是一个非常耗时的操作
for (int i = 2; i*i<number; i++) {
if(number%i == 0){
return false ;
}
}
return true;
}
// ③ 使用爱拉托逊斯算法 充分利用了一素数的定义 如果一个数 m 是 另一个数 n 的倍数则这个数肯定不是素数