Source code available on GitHub.
A very succinct question:
Well, in problem 3 we already made a function `isPrime(number)` to check if a number is prime, so let’s port that right in:
import math def isPrime(number): if number == 1: return False else: if number == 2: return True else: for i in range(2,math.ceil(math.sqrt(number))+1): if number % i == 0: return False return True
Now we just want to keep going through all the positive integers, generating primes until we have 10,001 of them. This while
loop will make an infinite list of primes if you leave it to go on for long enough:
primes = [] i = 1 while True: if isPrime(i): primes.append(i) i += 1
We just add a termination if len(primes)
is above 10,001 and print off our 10,001st prime! This is the whole program
import math def isPrime(number): if number == 1: return False else: if number == 2: return True else: for i in range(2,math.ceil(math.sqrt(number))+1): if number % i == 0: return False return True primes = [] i = 1 while True: if isPrime(i): primes.append(i) if len(primes) > 10001: break i += 1 print(primes[10000])