Updating all of the new ones that are done.
This commit is contained in:
@@ -2,21 +2,21 @@ package prime
|
||||
|
||||
var sieve []int
|
||||
|
||||
// Nth finds the nth prime and 'true' if the 0th prime wasn't requested
|
||||
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
|
||||
if len(sieve) == 0 {
|
||||
// Let's just do some initialization
|
||||
sieve = append(sieve, 0)
|
||||
sieve = append(sieve, 2)
|
||||
}
|
||||
sieveLen := len(sieve)
|
||||
for i := sieve[len(sieve)-1]; sieveLen <= n; i++ {
|
||||
isPrime := true
|
||||
for j := 1; j < len(sieve); j++ {
|
||||
for j := 1; j < sieveLen; j++ {
|
||||
if i%sieve[j] == 0 {
|
||||
// Not a prime
|
||||
isPrime = false
|
||||
break
|
||||
}
|
||||
@@ -24,9 +24,7 @@ func Nth(n int) (int, bool) {
|
||||
if isPrime {
|
||||
// Found a new prime
|
||||
sieve = append(sieve, i)
|
||||
if len(sieve) >= n {
|
||||
break
|
||||
}
|
||||
sieveLen = len(sieve)
|
||||
}
|
||||
}
|
||||
return sieve[n], true
|
||||
|
Reference in New Issue
Block a user