Tutorial: Números Primos en Java

Qué es un número primo?

Un número primo es aquel número que solo es divisible por si mismo y por la unidad. Por convención solo los números naturales mayores que cero son candidatos a números primos, también por convención sabemos que el número 1 NO es primo. Así, los veinte primeros números primos son: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67 y 71.

Veamos como podemos implementar un algoritmo en Java que nos permita saber si dado un número, saber si este es un número primo o no.

Cómo programar un algoritmo de números primos en Java?

Lo primero que haremos será crear una clase main, luego crear el método static void main y dentro de este definir una lista de números enteros, de la siguiente manera:



package main;

import java.util.ArrayList;
import java.util.List;

public class Main 
{
 public static void main(String[] args) 
 {
  List<integer> numberList = new ArrayList<>();
  
  numberList.add(new Integer(929123));
  numberList.add(new Integer(929059));
  numberList.add(new Integer(929058));
  numberList.add(new Integer(4));
  numberList.add(new Integer(1));
  numberList.add(new Integer(929129));
  numberList.add(new Integer(92905));
  numberList.add(new Integer(931639));
  numberList.add(new Integer(931633));
  numberList.add(new Integer(931637));
  numberList.add(new Integer(931623));
  numberList.add(new Integer(931611));

                //TODO: Implementar función que reciba mi lista de números que definí arriba y devuelva una lista de números primos.
                //TODO: Imprimir por pantalla los números primos de la lista.
 }
}


El siguiente paso será crear una función en la misma clase Main, la función va a filtrar los números de tal manera que devuelva solo aquellos números que son primos. La función recibe de entrada la lista inicial de números.

public static List<integer> collect(List<integer> numberList) 
{
 List<integer> primeList = new ArrayList<>();
 int counter=0;
 for (Integer number : numberList) 
 {
  if (number > 1) //solo números positivos mayores que 1 son canditatos a primos.
  {
   for (int i = 2; i < number; ++i) //Empiezo a obtener residuo desde 2 porque todos los números son divisibles para 1 y para si mismo.
   {
    if (number % i == 0){
     counter++;
     break; //Hacemos break aquí, porque en este punto sabemos que el número no es primo.
    }
   }
   if (counter == 0)//entonces, si el contador sigue en cero, el número es primo!
   {
    primeList.add(number); //lo agregamos a la lista de retorno.
   }
   counter=0;
  }
 }
 return primeList;
}

Recordar que para saber si un número es divisible para otro se debe usar la función módulo de java denotada por el símbolo "%" 

Ahora que ya tenemos la función "collect" definida, vamos a implementarla en el método main y luego a imprimir por pantalla los números primos:

//TODO: Implementar función que reciba mi lista de números que definí arriba y devuelva una lista de números primos.
List<integer> primeList = collect(numberList);

//TODO: Imprimir por pantalla los números primos de la lista.
for (Integer n : primeList) 
{
 System.out.println(n);
}


Compilamos el proyecto y ejecutamos, la salida por pantalla de números primos según los números dados en la lista inicial debe ser:

929059
929129
931639

El proyecto lo puedes descargar desde mi onedrive a través del siguiente link: descargar

Comentarios

  1. Tutorial: Números Primos En Java >>>>> Download Now

    >>>>> Download Full

    Tutorial: Números Primos En Java >>>>> Download LINK

    >>>>> Download Now

    Tutorial: Números Primos En Java >>>>> Download Full

    >>>>> Download LINK Xh

    ResponderEliminar

Publicar un comentario