算法一:
不考虑小于2的数,设置循环变量i,如果该数能被i整除,则不是质数。该算法时间复杂度O(n)=n
缺点:若number较大,循环次数太多,效率低
public static boolean isPrime(int number) {
for (int i = 2; i < number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
算法二:
非质数都可拆分为两数之积,设两因子为该非质数的开根号值,非质数一定可以拆分为一个小于他开根号因子的数乘与一个大于他开根号因子的数。根据对称性,循环数i只需考虑小于非质数开根号因子值。
public static boolean isprime(int number) {
int count = 0;
for(int i=2;i<Math.sqrt(number);i++){
count++;
if(number%i==0)
return false;
}
System.out.println(count);
return true;
}