ich habe versucht, das Problem 7 von Project Euler zu lösen. Nach mehreren Bugs, die ich beheben konnte, habe ich folgendes "Endprodukt":
Code: Alles auswählen
#!/usr/bin/env python3
# Output the Nth prime number
from Problem3 import isPrime # isPrime function
def main():
primes = [2]
currNum = 3
n = int(input("Compute Nth Prime Number: "))
if n < 1:
print("Error: n must be greater than 0\n")
return
while len(primes) < n:
if isPrime(currNum):
primes.append(currNum)
currNum += 2 # no even primes after 2
print(str(n) + ". Prime Number:", primes[-1])
if __name__ == '__main__':
main()
Code: Alles auswählen
IN OUT
----------
1 2
2 3
3 5
10 29
50 191
100 377
999 3749
Meine isPrime Funktion:
Code: Alles auswählen
def isPrime(n):
primesUnder100 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
if n <= 100:
return n in primesUnder100
else:
if n % 2 == 0:
return False
elif n % 3 == 0:
return False
elif n % 5 == 0:
return False
else:
for i in range(6, int(n ** 0.5), 6):
if n % i == 0:
return False
return True
Code: Alles auswählen
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?