Я пытаюсь найти решение с малой временной сложностью для поиска n-го простого числа.Однако есть некоторые проблемы с методами, которые я запутал.Также я хочу знать, что у меня низкая сложность по времени или может быть лучше?
Я пробовал два разных способа найти простое число, в то время как первый слишком медленный, поэтому я изменил другой.Но у логического метода есть некоторая проблема, о которой я понятия не имею.
public static int FInd_NthPrime(int n){
int num=0,j,c=2;
while (true) {
if(isPrime(c)){
num = num+1;
}
c = c+1;
break;
}
return c; // the error happened
}
public static boolean isPrime(int n) {
for (int i = 2; i < Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void print_nth_prime(int num){
int result = FInd_NthPrime(num);
System.out.print(num +" "+result);
}
Я ожидаю, что кто-нибудь скажет мне ошибку в булевом методе, и есть ли лучший способ сделать сложнее по времени нахождение n-го простого числа。