判断n是否为素数,可先求出n的平方根(squreRoot),然后n除以大于等于2且小于等于squreRoot之间的数字,不能整除即为素数。
/*
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
*/
public class IsPrimeQuick {
public static void main(String[] args) {
final int SIZE = 50;
int[] pr = new int[SIZE];
for (int i = 2, count = 0; count < SIZE; i++)
if (isPrime(i))
pr[count++] = i;
showPrime(pr);
}
public static boolean isPrime(int n) {
int squreRoot = (int) (Math.sqrt(n));
//当n=2时,2的平方根小于2,for循环不成立,返回真。
for (int i = 2; i <= squreRoot; i++)
if (n % i == 0)
return false;
return true;
}
public static void showPrime(int[] pr) {
for (int i = 0; i < pr.length; i++) {
System.out.print(pr[i] + "\t");
if ((i + 1) % 10 == 0)
System.out.println();
}
}
}