😗

[ChatGPT]素数を求めるプログラムをPythonで書いてもらう

2023/02/10に公開

はじめに

ChatGPTに素数を表示するプログラムをPythonで書いてもらうようにします。

[質問]素数を小さい順に100個表示するプログラムをPythonで書いて
[ChatGPT]素数を求めるためのアルゴリズムとして有名なのは「エラトステネスの篩」です。
このアルゴリズムを用いて、小さい順に100個の素数を表示するプログラムをPythonで
書いてみましょう。
prime_number.py
def sieve_of_eratosthenes(n):
    prime = [True for i in range(n+1)]
    p = 2
    while p * p <= n:
        if prime[p] == True:
            for i in range(p * p, n+1, p):
                prime[i] = False
        p += 1
    primes = []
    for p in range(2, n):
        if prime[p]:
            primes.append(p)
    return primes

n = 200
primes = sieve_of_eratosthenes(n)
for i in range(100):
    print(primes[i])
[ChatGPT]このプログラムでは、最大値 n を200に設定していますが、
必要に応じて変更することができます。

とありますが、素数を小さい順から並べると100番目の素数は200より大きくなるので、全て表示できません。
n=600に変更することで、素数を100個表示させることができます。

Discussion