viernes, 10 de julio de 2015

Numeros Primos en C#.Net (Consola)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Consola_Numeros_Primos
{
    class Program
    {
        static void Main(string[] args)
        {
            int numero, i
, x = 0;
            string resultado;

            Console.Write("Introduce un numero mayor que 1: ");
            int.TryParse(Console.ReadLine(), out numero);

            if (numero <= 1)
            {
                Console.WriteLine("Este numero no esta permitido");
                Console.ReadLine();
            }

            else
            {
                for (i = 2; i < numero; i++)
                {

                    if (numero % i == 0)
                        x = 0 + 1;
                }

                if (x >= 1)
                    resultado = "No es primo";
                else
                    resultado = "Es primo";
                Console.WriteLine("{0}", resultado);
                Console.ReadLine();
            }
        }
    }
}




Explicacion:

Un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Tambien cabe saber que el número 2 es el unico par primo. Habiendo dicho esto, el codigo se explica de la siguiente manera:


Declaramos las variables a utilizar en el programa:
  
int numero, i, x = 0;
string resultado;


Pedimos la entrada del número a determinar y almacenamos dicho número en la variable "numero", y con el fragmento de codigo "int.Tryparse"nos aseguramos de convertir cualquier cosa que se introduzca en un valor entero, esto por si algun pendejo  se le ocurre introducir una letra  o un espacio en blanco a pesar de que el letrero dice claramente "Introduce un numero mayor que 1". En donde la parte "int" de dicho fragmento es el tipo de datos al cual se convertirá el  valor que se introduzca, y el metodo "Tryparse" se encarga de hacer la conversión al valor indicado,  de esta manera evitamos que el programa explote por la entrada de datos erróneos:

Console.Write("Introduce un numero mayor que 1: ");
int.TryParse(Console.ReadLine(), out numero);

 
Nos aseguramos que el número esté dentro del rango correcto, o sea,  que sea un número natural mayor que 1, esto por si al mismo pendejo que intentó introducir una letra  o espacio en blanco tratando de hacer que el programa explote se le ocurre introducir un número negativo, el cero o el 1:

if (numero <= 1)
    {
      Console.WriteLine("Este numero no esta permitido");
      Console.ReadLine();
    }

else
    {
    .........................................

    Resto del codigo que se explica mas abajo
    ..........................................
    }


Luego dividimos el número a determinar por todos los valores que se encuentran entre él mismo y el 1, osea, si el número a determinar es el 5, pues procedemos a dividir el 5 por 2, 3, 4 y si es divisible por uno de estos valores pues el número no es primo de lo contrario si lo es. Por cada numero que sea divisible, la variable"x" cuyo valor es cero aumentará su valor en una unidad, para esto utilizaremos un bucle FOR en donde la variable "i" tomará todos los valores entre el 1 y el número a determinar, en donde cada valor de "i" se dividirá por la variable "numero" que es la variable que contiene el número que queremos determinar :

for (i = 2; i < numero; i++)
         

{
 

   if (numero % i == 0)
   x = 0 + 1;
   

}

Al final solo resta saber si la variable "x" a cambiado su valor, es decir, si al final la variable "x" sigue valiendo cero el número a determinar es primo, ya que no encontró un número divisor de este entre los números que estan entre él mismo y el 1, por ejemplo en el caso del 5 este es primo porque ni el 2,3,4 son divisores de este. Pero si la variable "x" vale 1 o mas, entoces el número no es primo, pues es divisible por uno o mas valores aparte de él mismo y la unidad, por ejemplo si el número a determinar es 9 dividiriamos este por 2,3,4,5,6,7,8 siendo el 3 otro divisor del 9 aparte del mismo 9 y el 1. 

if (x >= 1)
  resultado = "No es primo";
else
  resultado = "Es primo";
  Console.WriteLine("{0}", resultado);
  Console.ReadLine();
 



Esto es todo!!!!


 

1 comentario:

  1. Si se quiere mostrar los valores ejemplo los primos entre 15 y 100 como se guardaria las varibles que ingrese

    ResponderBorrar