import time
# Función para generar números primos usando la Criba de Eratóstenes
def sieve_of_eratosthenes(n):
is_prime = [True] * (n + 1)
is_prime[0] = is_prime[1] = False # 0 y 1 no son primos
for i in range(2, int(n**0.5) + 1):
if is_prime[i]:
for j in range(i * i, n + 1, i):
is_prime[j] = False
primes = [i for i in range(n + 1) if is_prime[i]]
return primes
# Límite superior
n = 10000000 # Cambia este valor para ajustar el límite superior
# Medir el tiempo de ejecución
start_time = time.time()
primes = sieve_of_eratosthenes(n)
end_time = time.time()
# Solo imprime los primeros 10 primos
print("Primeros 10 primos: {}".format(primes[:10]))
print("Total de primos encontrados: {}".format(len(primes)))
print("Tiempo de ejecución: {:.6f} segundos".format(end_time - start_time))
aW1wb3J0IHRpbWUKCiMgRnVuY2nDs24gcGFyYSBnZW5lcmFyIG7Dum1lcm9zIHByaW1vcyB1c2FuZG8gbGEgQ3JpYmEgZGUgRXJhdMOzc3RlbmVzCmRlZiBzaWV2ZV9vZl9lcmF0b3N0aGVuZXMobik6CiAgICBpc19wcmltZSA9IFtUcnVlXSAqIChuICsgMSkKICAgIGlzX3ByaW1lWzBdID0gaXNfcHJpbWVbMV0gPSBGYWxzZSAgIyAwIHkgMSBubyBzb24gcHJpbW9zCgogICAgZm9yIGkgaW4gcmFuZ2UoMiwgaW50KG4qKjAuNSkgKyAxKToKICAgICAgICBpZiBpc19wcmltZVtpXToKICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UoaSAqIGksIG4gKyAxLCBpKToKICAgICAgICAgICAgICAgIGlzX3ByaW1lW2pdID0gRmFsc2UKCiAgICBwcmltZXMgPSBbaSBmb3IgaSBpbiByYW5nZShuICsgMSkgaWYgaXNfcHJpbWVbaV1dCiAgICByZXR1cm4gcHJpbWVzCgojIEzDrW1pdGUgc3VwZXJpb3IKbiA9IDEwMDAwMDAwICAjIENhbWJpYSBlc3RlIHZhbG9yIHBhcmEgYWp1c3RhciBlbCBsw61taXRlIHN1cGVyaW9yCgojIE1lZGlyIGVsIHRpZW1wbyBkZSBlamVjdWNpw7NuCnN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQpwcmltZXMgPSBzaWV2ZV9vZl9lcmF0b3N0aGVuZXMobikKZW5kX3RpbWUgPSB0aW1lLnRpbWUoKQoKIyBTb2xvIGltcHJpbWUgbG9zIHByaW1lcm9zIDEwIHByaW1vcwpwcmludCgiUHJpbWVyb3MgMTAgcHJpbW9zOiB7fSIuZm9ybWF0KHByaW1lc1s6MTBdKSkKcHJpbnQoIlRvdGFsIGRlIHByaW1vcyBlbmNvbnRyYWRvczoge30iLmZvcm1hdChsZW4ocHJpbWVzKSkpCnByaW50KCJUaWVtcG8gZGUgZWplY3VjacOzbjogezouNmZ9IHNlZ3VuZG9zIi5mb3JtYXQoZW5kX3RpbWUgLSBzdGFydF90aW1lKSkK
Primeros 10 primos: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
Total de primos encontrados: 664579
Tiempo de ejecución: 2.325733 segundos