Hoy vamos a ver cómo imprimir todos los números primos existentes dentro de un rango en Java, usando el ciclo for y una función para saber si un número es primo.
Vamos a pedir el inicio y el fin usando un Scanner, y después vamos a imprimir todos los números primos que existen en un rango usando Java.
En un post anterior ya expliqué la función que nos dice si un número es primo. La pongo aquí de nuevo:
public static boolean esPrimo(int numero) {
// El 0, 1 y 4 no son primos
if (numero == 0 || numero == 1 || numero == 4) {
return false;
}
for (int x = 2; x < numero / 2; x++) {
// Si es divisible por cualquiera de estos números, no
// es primo
if (numero % x == 0)
return false;
}
// Si no se pudo dividir por ninguno de los de arriba, sí es primo
return true;
}
Para lograr nuestro objetivo hay que solicitar el inicio
y el fin
. También declaramos una variable contador
que va a contar los números primos que hayan dentro del rango.
int inicio, fin, contador = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Escribe el inicio:");
inicio = sc.nextInt();
System.out.println("Escribe el fin:");
fin = sc.nextInt();
Después hacemos un ciclo for que va desde el inicio
hasta el fin
, aumentando en 1 en cada paso. Tenemos la variable x
, con ella invocamos al método esPrimo
y en caso de que el valor de x
sea primo, lo imprimimos.
for (int x = inicio; x <= fin; x++) {
if (esPrimo(x)) {
contador++;
System.out.print(String.valueOf(x) + ",");
}
}
Así que el código completo queda así:
/*
Números primos en un rango
https://parzibyte.me/blog
*/import java.util.Scanner;
class Main {
public static void main(String[] args) {
int inicio, fin, contador = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Escribe el inicio:");
inicio = sc.nextInt();
System.out.println("Escribe el fin:");
fin = sc.nextInt();
for (int x = inicio; x <= fin; x++) {
if (esPrimo(x)) {
contador++;
System.out.print(String.valueOf(x) + ",");
}
}
System.out.printf("\nTotal: %d", contador);
sc.close();
}
public static boolean esPrimo(int numero) {
// El 0, 1 y 4 no son primos
if (numero == 0 || numero == 1 || numero == 4) {
return false;
}
for (int x = 2; x < numero / 2; x++) {
// Si es divisible por cualquiera de estos números, no
// es primo
if (numero % x == 0)
return false;
}
// Si no se pudo dividir por ninguno de los de arriba, sí es primo
return true;
}
}
Puedes ejecutarlo con NetBeans o un IDE de tu agrado. Yo lo haré desde la terminal:
También te invito a ver este ejercicio pero en el lenguaje C.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.