import time

def sieve_of_eratosthenes(limit):
    primes = [True] * (limit + 1)
    primes[0] = primes[1] = False  # 0 y 1 no son primos
    for i in range(2, int(limit**0.5) + 1):
        if primes[i]:
            for j in range(i * i, limit + 1, i):
                primes[j] = False
    return [i for i, is_prime in enumerate(primes) if is_prime]

# Límite
limit = 100000  # Cambia este valor si lo deseas

# Temporizador
start_time = time.time()
primes = sieve_of_eratosthenes(limit)
end_time = time.time()

# Resultados
print(f"Primos hasta {limit}: {len(primes)} encontrados.")
print(f"Tiempo de ejecución: {end_time - start_time:.6f} segundos.")
