Números primos en un rango con Java

09/Oct/2017 Java , , Deja un comentario

Un número primos, tal y como vimos en el ejemplo de Números Primos con Java, es un número el cual solo es divisible por si mismo y por la unidad. En el ejemplo de Números Primos con Java vimos el código necesario para calcular si dado un número este era primo o no. En este caso nos vamos a apoyar en dicho código para poder calcular los números primos en un rango con Java. Es decir, el usuario establecerá un rango de números: inicio y fin, y calcularemos los números primos que haya en dicho rango.

Lo primero será revisar la función Java que nos dice si dado un número, este es primo.

  1. public static boolean esPrimo(int numero){
  2. int contador = 2;
  3. boolean primo=true;
  4. while ((primo) && (contador!=numero)){
  5. if (numero % contador == 0)
  6. primo = false;
  7. contador++;
  8. }
  9. return primo;
  10. }

Lo que hace la función es iterar desde el número 2 hasta que llega al número por si es divisible en alguno de los números. Asume que el número va a ser primo, pero tan pronto encuentra un número por el que pueda ser divisible:

  1. if (numero % contador == 0) { ... }

Cambiará el valor a indicar que ya no es primo:

  1. primo = false;

Es decir, está utilizando una variable que actúa de cortocircuito para salir del bucle y devolver una respuesta lo antes posible.

Ahora lo que vamos a tratar el el tema del rango. Para ello definimos dos variables con el inicio y fin del rango:

  1. int iInicioRango = 50;
  2. int iFinRango = 97;

Nosotros las hemos dado unos valores por defecto, aunque lo suyo sea pedírselas al usuario por consola.

Una vez que tenemos el rango es tan sencillo como establecer un bucle que recorra el rango y vaya llamando a la función esPrimo()

  1. for (int x=iInicioRango;x<=iFinRango;x++) {
  2. if (esPrimo(x))
  3. System.out.print(x + " ");
  4. }

En el caso de que la función esPrimo() nos devuelva un true, imprimiremos el número por pantalla.

De esta forma tan sencilla tendremos nuestro código que calcule números primos en un rango con Java.

Vídeos sobre Java


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*