Lista de 'n' primos en C# (Consola)

En una entrada anterior compartí el código en C# de cómo saber si un número es primo o no.

Una variación de dicho ejercicio es imprimir los primeros 'n' números primos. Por ejemplo, si al ejecutar el programa ingresamos el número 5, el programa imprimirá los primeros 5 números primos.

Para escribir este código es necesario dividir el programa en 2. Una parte se encargará de determinar si los números que le vamos pasando a través de un ciclo son o no primos y la otra parte se encargará de ir almacenando en una variable dichos números para posteriormente ser impresos en pantalla.

El siguiente código corresponde a una aplicación de consola que, dado un número 'n', imprime los primeros 'n' números primos.


static void Main(string[] args)
        {            
            int n; //número de primos a mostrar en pantalla
            string primos; //cadena donde almacenaremos la lista de los números primos a imprimir
            Console.Write("Cantidad de primos a imprimir : ");
            n = Convert.ToInt32(Console.ReadLine());
            ListarPrimos(n, out primos);
            Console.WriteLine("\n\n"+primos);
            Console.ReadKey();
        }

        private static void ListarPrimos(int n, out string primos)      //subprograma donde almacenamos los números primos
        {
            primos = string.Empty;
            int cantPrimos = 0, cont = 2;
            while(cantPrimos < n)
            {
                if(EsPrimo(cont)) 
                {
                    primos += cont + "\t";
                    cantPrimos++;
                }
                cont++;
            }            
        }

        private static bool EsPrimo(int cont)      //subprograma donde determinamos si un número es primo o no
        {
            for (int i = 2; i < cont/2; i++)
            {
                if (cont % i == 0)
                    return false;
            }
            return true;
        }

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

No hay comentarios:

Publicar un comentario