C#: Cómo saber si un número es primo

Anteriormente ya vimos cómo saber si un número es par o impar, a continuación, vamos a ver cómo saber si un número es primo.

Los números primos son muy interesantes para la criptografía. ¿Sabías que hoy en día todavía se siguen buscando números primos? El último descubierto tenía más de 23 millones de cifras…

Volviendo al tema del artículo, debes de saber que un número primo es aquel que únicamente puede ser dividido por 1 y por sí mismo sin residuos.

Función para saber si un número es primo

Para solucionar este ejercicio tenemos que hacer una función que recorra todos los números inferiores al nuestro y divida nuestro número por cada uno de ellos:

        static void Main(string[] args)
        {

            int num = 3;

            if(EsPrimo(num))
            {
                //Es un número primo
            }
            else
            {
                //No es un número primo
            }

        }

        static bool EsPrimo(int numero)
        {
            for (int i = 2; i < numero; i++)
            {
                if((numero % i) == 0)
                {
                    // No es primo :(
                    return false;
                }
            }

            // Es primo :)
            return true;
        }

La función es muy simple, básicamente hacemos un bucle for que empiece por 2 (recordar que los primos pueden dividirse por 1) y que el bucle llegue como máximo a nuestro número -1 (un primo puede dividirse por sí mismo).

Utilizamos el % que nos devuelve el residuo de una división para dividir cada número y en caso de que encontremos alguno que no tenga residuo salimos de la función y devolvemos false porque no es un número primo (no tiene sentido seguir comprobando números con el bucle, y desperdiciando recursos de la máquina).

En caso de que no haya salido de la función en el bucle devolvemos true como que es un número primo.

Deja un comentario