// help for the implementation from: // https://www.geeksforgeeks.org/program-to-find-the-nth-prime-number/ // by Ujjwal Kumar Bhardwaj class NthPrime { // function to check if given number is prime or not // basic idea is number not divided by any primes are primes // bool isPrime(int k) { // // Corner cases // if (k <= 1) return false; // if (k == 2 || k == 3) return true; // // below 5 there are only two prime numbers 2 and 3 // if (k % 2 == 0 || k % 3 == 0) return false; // // Using concept of prime number can be represented // // in form of (6*k + 1) or (6*k - 1) // for (int i = 5; i * i <= k; i = i + 6) // if (k % i == 0 || k % (i + 2) == 0) return false; // return true; // } // int prime(int n) { // if (n == 0) throw new ArgumentError('There is no zeroth prime'); // int i = 2; // while (n > 0) { // // each time if a prime number is found decrease n // if (isPrime(i)) n--; // i++; // increase the integer and go ahead // } // i -= 1; // since decrement of k is being done before // // Increment of i, so i should be decreased by 1 // return i; // } bool isPrime(int n) { for (int start = 2; start < n; start++) { if (n % start == 0) return false; } return true; } int prime(int n) { if (n == 0) throw new ArgumentError('There is no zeroth prime'); int counter = 0, number = 2; for (; counter < n; number++) { if (isPrime(number)) counter++; } return --number; } }