Solución

@kappa_cat·8/9/2026TypeScript
solution.tsTypeScript
export function sieveOfEratosthenes(n: number): number[] {
  if (n < 2) return []

  // 1 Crear arreglo booleano tamaño 'n + 1' inicializado a true
  const esPrimo: boolean[] = Array(n + 1).fill(true)
  // 2 Marcar los indices 0 y 1 como false, ya que no son primos
  esPrimo[0] = false
  esPrimo[1] = false

  // 3 Recorrer los numeros desde 2 hasta la raiz cuadrada de 'n'
  for (let i = 2; i <= Math.sqrt(n); i++) {
    // Si 'i' es primo, marcar todos sus multiplos como false
    if (esPrimo[i]) {
      for (let j = i * i; j <= n; j += i) {
        esPrimo[j] = false
      }
    }
  }

  const result: number[] = []

  // 4 Extraer los indices que permanecen en true (son primos)
  for (let i = 2; i <= n; i++) {
    if (esPrimo[i]) result.push(i)
  }

  return result;
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.