Java básico 064. Función, calculando números primos.

Ejercicio: Realizar una función que permita calcular números primos en un rango específico.

Con esta primera clase calculamos si el número ingresado por el usuario es primo o no.

Código Java
import java.util.Scanner;

/**
*
* @author ECS
*/

public class NumerosPrimos {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
//Scanner para obtener datos de la consola.
Scanner s = new Scanner(System.in);
System.out.print("Ingresa un número para ver si es primo: ");
//Guardamos en una variable el número ingresado
int n = s.nextInt();
//ejecutamos nuestra función
boolean esPrimo = esPrimo(n);
//Si devuelve True no es primo, por tanto ! negamos para ajustar al código
if(!esPrimo){
System.out.println("El número " + n + " es Primo.");
}
else{
System.out.println("El número " + n + " no es Primo.");
}
}
//La función recibe un entero como argumento
static boolean esPrimo(int n){
//inicializamos una variable boolean
boolean b = false;
//Los número negativo no entran como primos
if(n < 0){
b = true;
}
//El 1,2,3,5 son primos conocidos por tanto las obviamos
else if(n != 1 && n != 2 && n != 3 && n != 5){
//Con un for recorremos los números intermedios en 1 y n
//Comprobamos que el módulo con alguno de ellos de 0-cero
for (int i = 2; i < n; i++) {
//Si b es true, demuestra que n no es primo
if(b){
break;
}
b = (n%i == 0);
}
}
//Si n es 1,2,3 o 5 se false, que es primo.
else{
b = false;
}
return b;
}

}

Con la segunda clase podremos especificar un rango de números, en esta caso listamos los numero primos del 1 al 1000. Abajo anexamos una imagen con los primos del 1 al 1000; sirve para comprobar la funcionalidad del código.

Código Java
/**
*
* @author ECS
*/

public class NumerosPrimosDos {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
//Utilizamos un for para comprobar los números primos del 1 al 1000
int total = 0;
for (int i = 0; i < 1000; i++) {
boolean esPrimo = esPrimo(i);
if(!esPrimo){
System.out.println("- " + i);
total++;
}
}
System.out.println("Hay un total de " + total + " números primos.");
}
//La función recibe un entero como argumento
static boolean esPrimo(int n){
//inicializamos una variable boolean
boolean b = false;
//Los números negativos no entran como primos, el 1-uno tampoco
if(n <= 0 || n == 1){
b = true;
}
//El 2,3,5 son primos conocidos por tanto las obviamos
else if(n != 2 && n != 3 && n != 5){
//Con un for recorremos los números intermedios en 1 y n
//Comprobamos que el módulo con alguno de ellos de 0-cero
for (int i = 2; i < n; i++) {
//Si b es true, demuestra que n no es primo y salimos del bucle
if(b){
break;
}
b = (n%i == 0);
}
}
//2,3 y 5 son los primeros primos conocidos
else{
b = false;
}
return b;
}

}

2 comentarios :

  1. Buen día
    Como gago para que me muestre n numero de números primos (los 5 primeros)y los sume? Gracias

    ResponderEliminar
    Respuestas
    1. El último ejemplo te podria servir. 2,3,5 son primos conocidos, solo te faltarian 2. Con un contador para la cantidad y con otra para la suma lo tendrias resuelto. Saludos.

      Eliminar