import PIL, math #Problem 7 - 10,001st prime #returns a list of every prime up to a certain number def listprimes(number): primes = [] if (number <=1): return [1] a = [1] * number a[0]=0 a[1]=0#1 and 0 are not prime ##Sieve of eratosthenes for i in range(2,int(math.ceil(math.sqrt(number)))): if(a[i]==1): j = i**2 #cross out all the multiples of i, starting with its square while(j < number): a[j] = 0 j+=i for k in range(2, number): #is prime if(a[k]==1): primes.append(k) return primes out_list = listprimes(1000000) #print(out_list) #return 10,001th prime factor print(out_list[10000])