问题描述如下:
“前6个质数为:2,3,5,7,11,13,那第6个质数为13,求第10001个质数。”
代码如下:
private static int getPrimeNumberBy(int n) {
int j = 1;
int i = 1;
int result = 0;
while (j < n) {
if (AlgorithmUtil.isPrimeNumber(i)) {
result = i;
j++;
}
i += 2;
}
return result;
}
下面是判断质数的代码:
/**
* 判断是否是素数
*
* @param n
* @return
*/
public static boolean isPrimeNumber(int n) {
if (n < 2) {
return false;
}
double max = Math.sqrt(n);
for (int i = 2; i <= max; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
ps:质数也叫素数。
请不吝赐教。
@anthor ClumsyBirdZ