Updating all of the new ones that are done.

This commit is contained in:
2016-09-02 14:26:22 -05:00
parent 36dc090a89
commit ec45e6b2eb
15 changed files with 1390 additions and 12 deletions

View File

@@ -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