Número Primo en C# (Consola)

Uno de los primeros algoritmos que debe escribirse en lógica de programación es aquel que nos permita determinar si un número es o no primo.

Antes de escribir un algoritmo primero se debe entender muy bien el problema, en este caso, saber cuándo un número es primo.

Se dice que un número es primo cuando solo es divisible por 1 y por sí mismo. La lógica de este algoritmo consiste en ingresar por teclado el número a evaluar y, a través de un ciclo, determinar si dicho número es divisible por alguno de los números que lo precede.

Si resulta divisible por alguno de los números que lo precede, se determina que el número a evaluar NO es primo. Si por el contrario, no resulta divisible por ninguno de los números que lo preceden, se dice que el número es primo.

El siguiente código corresponde a una aplicación por consola y plantea el algoritmo para determinar si un número ingresado por teclado es o no es primo.


static void Main(string[] args)
        {
            int n;   //VARIABLE DONDE GUARDAMOS EL NÚMERO INGRESADO POR TECLADO         
            Console.WriteLine("PROGRAMA QUE DETERMINA SI UN NÚMERO INGRESADO POR CONSOLA ES O NO PRIMO");
            Console.Write("\nIngrese un valor mayor a 2: ");
            n = Convert.ToInt32(Console.ReadLine());
            if(EsPrimo(n))     //A TRAVÉS DE UN SUBPROGRAMA EVALUAMOS SI EL NÚMERO INGRESADO ES O NO PRIMO
            {
                Console.WriteLine("El número {0} es primo", n);
            }
            else
            {
                Console.WriteLine("El numero {0} no es primo", n);
            }
            Console.ReadKey();
        }

        private static bool EsPrimo(int n)
        {
            for (int i = 2; i < n; i++)        //COMO TODO NÚMERO ES DIVISIBLE POR 1 Y POR SI MISMO, EL CICLO
            {                                  //DEBE EMPEZAR EN 2 Y TERMINAR EN n - 1
                if (n % i == 0)                //CADA VEZ QUE EL CONTADOR SE INCREMENTA PREGUNTAMOS SI EL VALOR
                    return false;              //INGRESADO ES DIVISIBLE POR i. DE CUMPLIRSE LA CONDICIÓN RETORNAMOS FALSO
            }
            return true;                       //SI EL NÚMERO NO RESULTA DIVISIBLE POR NINGÚN VALOR, RETORNAMOS VERDADERO
        }                                      //INDICANDO QUE EL NÚMERO SÍ ES PRIMO
    }

En el programa principal (static void Main) se captura por teclado el número a evaluar y a través de un subprograma (EsPrimo) se determina si el número ingresado corresponde a un número primo.

Como podemos apreciar en el código, se debe utilizar un ciclo (en este caso un for) que va desde 2 hasta el número ingresado (n) - 1. El ciclo debe ir desde 2 porque todos los números son divisibles por 1 y por sí mismos.

El código del programa para .Net lo puedes descargar de aquí.

No hay comentarios:

Publicar un comentario