Pythonで最初のn個の素数を見つける方法


以下に、シンプルで簡単な方法といくつかのコード例を示します。

  1. シンプルな方法: 最も基本的な方法は、素数を順番に見つけるために、2から順番に数を調べる方法です。素数を見つけるためには、その数を2からその数の平方根までの範囲で割り切れるかどうかを調べます。
import math
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True
def find_prime_numbers(n):
    prime_numbers = []
    num = 2
    while len(prime_numbers) < n:
        if is_prime(num):
            prime_numbers.append(num)
        num += 1
    return prime_numbers
n = 10  # 最初の10個の素数を見つける例
prime_numbers = find_prime_numbers(n)
print(prime_numbers)
  1. エラトステネスのふるい: エラトステネスのふるいは、2から始まる連続した自然数列の中から素数を見つける効率的な方法です。このアルゴリズムは、篩いの原理を利用して素数を見つけます。
def sieve_of_eratosthenes(n):
    prime_flags = [True] * (n+1)
    prime_flags[0] = prime_flags[1] = False
    p = 2
    while p * p <= n:
        if prime_flags[p]:
            for i in range(p * p, n+1, p):
                prime_flags[i] = False
        p += 1
    prime_numbers = [num for num, is_prime in enumerate(prime_flags) if is_prime]
    return prime_numbers
n = 10  # 最初の10個の素数を見つける例
prime_numbers = sieve_of_eratosthenes(n)
print(prime_numbers)