指定した整数までの素数を、エラトステネスのふるいと呼ばれる手法で求める方法を見たあと、それを関数として定義し、その関数を使って、指定した値が素数かどうかを判定する関数を定義してみよう。 # リストを使ったバージョン target = 30 limit = int(target ** 0.5) + 1 primes = [False] * 2 + [True] * (target - 1) # primes[n]がTrueならnは素数 for n in range(2, limit): if primes[n]: primes[n * 2::n] = [False] * len(primes[n * 2::n]) result = [i for i in range(target + 1) if primes[i]] print(result) # [2, 3, 5, 7, 11, 13