human
EratoSthenes画面を使用して、ユーザーが選択した2から2にすべてのプライム番号をできるだけ迅速に計算するPythonスクリプトを作成します。
gpt
もちろん、ここではエラトステネスのふるいを使って、ユーザーが選んだ与えられた数までのすべての素数を見つけるPythonスクリプトをお見せしよう：

```
def eratosthenes(n):
    # Creamos un array de booleanos para marcar cada número
    # como primo o no
    primes = [True] * (n+1)
    # El primer número primo es 2
    p = 2
    while p**2 <= n:
        # Si primes[p] es True, entonces p es un número primo
        if primes[p] == True:
            # Actualizamos los múltiplos de p
            for i in range(p**2, n+1, p):
                primes[i] = False
        p += 1
    # Retornamos una lista con todos los números primos encontrados
    return [p for p in range(2, n+1) if primes[p]]

# Pedimos al usuario que introduzca el número límite
n = int(input("Introduce un número límite: "))

# Ejecutamos la función eratosthenes
prime_numbers = eratosthenes(n)

# Imprimimos la lista de números primos encontrados
print("Los números primos hasta", n, "son:", prime_numbers)
```


スクリプトは次のように動作する：

* 整数nを引数にとる関数eratosthenesが定義されている。
* 長さn+1のprimesと呼ばれるブール値の配列を作成し、Trueで初期化する。
* 最初の素数p=2から始め、配列primes内のpの倍数を素数としてマークする。
* 次の素数から始め、p^2 > nになるまで繰り返す。
* 配列 primes で見つかったすべての素数のリストが返される。
* ユーザは極限数nを入力するよう求められる。
* eratosthenes関数が実行され、素数のリストがprime_numbersに格納される。
* 見つかった素数のリストが表示される。