geo_analysisの日記

エンジニアになりたい無職のProjectEuler

プロジェクトオイラー7

プロジェクトオイラーの7をpythonで解きました。
問題
10001番目の素数を求めよ。

mport math
def primes(M): #エラトステネスのふるい
    prime_true_false = [1] * M
    prime_true_false[0] = 0
    prime_true_false[1] = 0
    for number in range(2, int(math.sqrt(M)) + 1):
        if prime_true_false[number]:
            for multiple in range(number * number, M, number):
                prime_true_false[multiple] = 0
    return [prime for prime in range(2, M) if prime_true_false[prime] ]

print(primes(1000000)[10000])