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:
929129
931639
El proyecto lo puedes descargar desde mi onedrive a través del siguiente link: descargar
Tutorial: Números Primos En Java >>>>> Download Now
ResponderEliminar>>>>> Download Full
Tutorial: Números Primos En Java >>>>> Download LINK
>>>>> Download Now
Tutorial: Números Primos En Java >>>>> Download Full
>>>>> Download LINK Xh