package prime var sieve []int func Nth(n int) (int, bool) { if len(sieve) == 0 { sieve = append(sieve, 0) sieve = append(sieve, 2) } if n == 0 { return 0, false } for i := sieve[len(sieve)-1]; n <= len(sieve); i++ { // Check if i is a prime isPrime := true for j := 1; j < len(sieve); j++ { if i%sieve[j] == 0 { // Not a prime isPrime = false break } } if isPrime { // Found a new prime sieve = append(sieve, i) if len(sieve) >= n { break } } } return sieve[n], true }