シンプルで効果的な素数生成器の作成方法


  1. 方法1: 単純な試し割り法 単純な試し割り法は、最も基本的な素数生成アルゴリズムです。以下にPythonでのコード例を示します。
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n0.5) + 1):
        if n % i == 0:
            return False
    return True
def prime_generator(limit):
    primes = []
    for num in range(2, limit):
        if is_prime(num):
            primes.append(num)
    return primes

上記のコードでは、is_prime()関数が与えられた数が素数かどうかを判定します。prime_generator()関数では、指定された範囲内の素数をリストとして返します。

  1. 方法2: エラトステネスの篩法 エラトステネスの篩法は、素数を効率的に生成するアルゴリズムです。以下にPythonでのコード例を示します。
def prime_generator(limit):
    sieve = [True] * limit
    sieve[0] = sieve[1] = False
    primes = []
    for (i, is_prime) in enumerate(sieve):
        if is_prime:
            primes.append(i)
            for n in range(i*i, limit, i):
                sieve[n] = False
    return primes

上記のコードでは、sieveリストを使用して篩法を実装しています。sieve[i]がTrueの場合は、iが素数であることを示します。篩法のアイデアは、素数の倍数を順番に除外することです。

これらのコード例を使用すると、指定された範囲内の素数を生成することができます。例えば、prime_generator(100)を呼び出すと、100以下の素数が返されます。

以上が、シンプルで効果的な素数生成器の作成方法です。これらのアルゴリズムを使用することで、素数を簡単に生成することができます。