五,第10001个素数
列出前6个素数,它们分别是2、3、5、7、11和13。我们可以看出,第6个素数是13。
第10,001个素数是多少?
public static void main( String[] args )
{
System.out.println(fist10001_prime(10001));
}
public static int fist10001_prime(int num) {
int i =0;
for (int j = 2; j < Integer.MAX_VALUE; j++) {
if (isPrime(j)) {
i++;
}
if (i == num) {
return j;
}
}
return -1;
}
public static boolean isPrime(long num){
if (num < 2) {
return false;
}
if (num == 2) {
return true;
}
if ((num &1) ==0) {
return false;
}
int max = (int) Math.sqrt(num);
for (int i = 3; i <= max; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
分析:
就是判断是否是素数,然后一个个相加,直到等于10001时为止。下面的方法是判断是否为素数,2是唯一是偶数的素数,除了2如果为偶数直接返回false,除了2任何素数都不能被偶数整除,所以下面循环的时候是从3开始,每次加2。