Función javascript para saber si un número es primo utilizando la criba de Eratóstenes

Aquí te dejo una función más optimizada para comprobar si un número es primo o no, utilizando la criba de Eratóstenes: ...
Publicado
Actualizado
Engagements 0 Comentario

Aquí te dejo una función más optimizada para comprobar si un número es primo o no, utilizando la criba de Eratóstenes:

En esta función, primero comprobamos si el número es menor o igual a 1

function esPrimo(numero) {
          if (numero <= 1) {
            return false;
          }
        
          // Inicializamos un arreglo con todos los números desde 2 hasta el número dado
          const numeros = Array.from({ length: numero - 1 }, (_, i) => i + 2);
        
          // Iteramos sobre los números del arreglo y eliminamos sus múltiplos
          for (let i = 0; i < numeros.length; i++) {
            const primoActual = numeros[i];
            numeros = numeros.filter((numero) => numero === primoActual || numero % primoActual !== 0);
          }
        
          // El número es primo si está en el arreglo resultante
          return numeros.includes(numero);
        }
        

Luego, inicializamos un arreglo numeros que contiene todos los números desde 2 hasta el número dado. Utilizamos Array.from() para crear el arreglo y una función de devolución de llamada para asignar los valores. La función de devolución de llamada crea un número entero para cada elemento del arreglo, comenzando en 2 y aumentando en 1 hasta el número dado.

Después, iteramos sobre los números del arreglo y eliminamos sus múltiplos utilizando el método filter(). Para cada número primoActual, eliminamos todos los elementos del arreglo que sean múltiplos de primoActual, excepto el propio primoActual.

Finalmente, comprobamos si el número dado se encuentra en el arreglo resultante. Si lo hace, es primo; si no, no lo es.

Este método es más eficiente que el método de fuerza bruta para números grandes, ya que elimina rápidamente todos los múltiplos de un número y salta a su siguiente número primo.

Comentarios