10001st Prime#
package main
import (
"fmt"
"math/big"
)
func firstNPrime(n int) int {
var nPrime int = 0
for i := 2; n != 0; i++ {
if big.NewInt(int64(i)).ProbablyPrime(0) {
nPrime = i
n--
}
}
return nPrime
}
func main() {
fmt.Println(firstNPrime(10001))
}
OUTPUT
104743
Python Solutions by Yogisam72#
Solution 1#
import time
prime = [2]
index = 10001
prime_numbers_array_length = 1
t0 = time.time()
i = 3
while prime_numbers_array_length != index:
flag = 1
for j in prime[:round(prime_numbers_array_length**0.5)]:
if i%j == 0:
flag = 0
break
if flag == 1:
prime.append(i)
prime_numbers_array_length = len(prime)
i += 2
print("10001st prime number is:",prime[-1])
t1 = time.time()
print("Time required:", t1 - t0)
OUTPUT
10001st prime number is: 104743
Time required: 0.1237955093383789
Solution 2#
import time
def SieveOfEratosthenes(n):
prime = [True for i in range(n+1)]
prime_numbers=[]
p = 2
while(p * p <= n):
# If prime[p] is not changed, then it is
# a prime.
if (prime[p] == True):
# Update all multiples of p
for i in range(p * p, n + 1, p):
prime[i] = False
p += 1
# Print all prime numbers
for p in range(2, n):
if prime[p]:
prime_numbers.append(p)
return prime_numbers[10000]
t0 = time.time()
c = SieveOfEratosthenes(110000)
print("10001st prime number is:", c)
t1 = time.time()
print("Time required:", t1 - t0)
OUTPUT:
10001st prime number is: 104743
Time required: 0.021940946578979492