Números primos en Java


Numeros primos en java

[MicroPost] En este micro articulo aprenderemos como determinar si un número es primo o no en Java, puedes encontrar el código funcional al final en nuestro repositorio de Github.

Que son los números primos

En términos matemáticos, un número primo es un número natural mayor que 1, el cual que tiene únicamente dos divisores distintos: él mismo número y el 1.

Algoritmo

El siguiente método nos permite verificar si un número es primo o no.-

1
2
3
4
5
6
7
8
9
10
11
12
public static boolean isPrime(int n)
{
    // Verificamos si es multiplo de 2
    if(n % 2 == 0) return false;

    // Recorremos todos los numeros impares
    for(int i = 3; i * i <= n; i += 2){
        if(n % i == 0) return false;
    }

    return true;
}

El algoritmo esta optimizado para obtener el resultado esperado en el menor tiempo posible, por ejemplo en la linea 4 verificamos si el número es par, ya que los números primos son impares, de esta forma obtendremos un resultado rápidamente.-

1
2
// Verificamos si es multiplo de 2
if(n % 2 == 0) return false;

En caso de que no sea par, entramos a un ciclo for, donde empezamos a verificar a partir del número 3 (recuerda que un numero primo es mayor a 1 y no debe ser par, por eso no tomamos en cuenta el número 1 y 2).-

1
2
3
4
// Recorremos todos los numeros impares
for(int i = 3; i * i <= n; i+=2){
    if(n % i == 0) return false;
}

En cada iteración verificamos si el número dado (n) es divisible por el dato obtenido en i, si es así, el número no es primo.-

1
if(n % i == 0) return false;

Casos de uso

Para verificar su funcionamiento, creamos un método para ingresar el dato.-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static int enterData()
{
    Scanner scan = new Scanner(System.in);
    int n;

    try{
        n = scan.nextInt();

        return n;
    } catch(Exception e) {
        System.out.println("Ingrese un numero");
        return enterData();
    }
}

Y en el método main realizamos el proceso.-

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args)
{
    // Obtenemos el numero
    System.out.print("Ingrese un numero: ");
    int n = enterData();

    // Verificamos si es primo
    if(isPrime(n)) System.out.println("Es primo");
    else System.out.println("No es primo");
}

Ahora si ejecutamos el programa y probamos con el conjunto de datos { 25, 29 } obtendremos el siguiente resultado.-

1
2
3
4
Ingrese un numero: 25
No es primo
Ingrese un numero: 29
Es primo

Código de ejemplo

Puedes encontrar el código completo en el siguiente enlace (repositorio de github).-

NumerosPrimos.java

Conclusiones

Si te encontraste útil este articulo, por favor compártelo para que pueda llegar a más personas.

Que tengan feliz código


Te fue de utilidad el articulo, ayudanos a compartir para que a más personas les resulte util!

Te interesa el tema, recibe los nuevos articulos directamente en tu email.-