comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Ejercicio de Java - Números primos

  • 3 Respuestas
  • 806 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado SiriusBl@ck

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    1.67%
  • Reputación 0
    • Ver Perfil
« en: Noviembre 04, 2018, 06:13:15 pm »
¡Buenas tardes Underc0de!

La consigna: Realizar un programa en Java que, calcule todos los números primos en cierto rango establecido.

Problemas a solucionar:

Deben estar separados por guion.
El programa debe tener la función ¿Desea continuar / SI o NO?
Si los números son ingresados al revés (es decir, que ingresen n1 > n2) también te calcule el rango.

PD: No sé casi nada de java, pero me está divirtiendo aprender.
En fin, dejo adjunto mi código incompleto con errores por si alguien gusta divertirse también.

Código: [Seleccionar]
public static void main(String[] args) {

        int i, j;
        boolean esPrimo;
        boolean seguir = true;
        int Inicio = 2;
        int Final;
       
        Scanner sc = new Scanner(System.in);
       
       while (seguir) {
       
        System.out.println("Ingrese un nùmero inicial ");
        Inicio = sc.nextInt();
        System.out.println("Ingrese un número final ");
        Final = sc.nextInt();
       
        for (i = Inicio; i <= Final; i++) {
            esPrimo = true;
            for (j = 2; j < i; j++) {
            if (i % j == 0) {
                esPrimo = false;
            }
            }
         
            if (esPrimo) {
                System.out.print(i+"  -  ");
               
            } 
        }
 
            System.out.println("Estos son todos los números primos entre el rango establecido");
           
      }else
   
{
        boolean seguir = false;
       
                 System.out.print("¿Desea continuar? ");
                 System.out.println("S / N ");
        String opc = sc.next();
        if (opc.equals("s") || opc.equals("S")) {
           
        }
               }
}


¡Saludos!
« Última modificación: Noviembre 04, 2018, 07:22:47 pm por SiriusBl@ck »
Es intrigante. ¿Cómo es que esas personas, que son tratadas como ganado en esta aburrida sociedad, no han intentado destruirla?

Shōgo Makishima

Desconectado SiriusBl@ck

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    1.67%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Noviembre 11, 2018, 12:40:04 pm »
Algunas cosas solucionadas:

Código: [Seleccionar]
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package numerosprimos;

import java.util.Scanner;


/**
 *
 * @author Toshiba
 */
public class NumerosPrimos {
public static void main(String[] args) {

     int i, j;
        boolean esPrimo;
        boolean seguir = true;
        int Inicio = 2;
        int Final;
        String respuesta = " ";
           
        Scanner sc = new Scanner(System.in);
       
while(seguir) {

System.out.println("Ingrese un nùmero inicial ");
        Inicio = sc.nextInt();
        System.out.println("Ingrese un número final ");
        Final = sc.nextInt();   

for (i = Inicio; i <= Final; i++) {
            esPrimo = true;
            for (j = 2; j < i; j++) {
            if (i % j == 0) {
                esPrimo = false;
            }
           
            if (esPrimo) {
                System.out.print(i+"  -  ");

    }
  }
} // end  for!

System.out.println("Estos son todos los números primos en el rango establecido");

System.out.println("Desea continuar? S/N");
             respuesta = sc.next();
             if (respuesta.equalsIgnoreCase("s"))
                seguir = true;
             else
                seguir = false;   
                                   
            }
         }
      }
« Última modificación: Noviembre 20, 2018, 09:59:21 am por SiriusBl@ck »
Es intrigante. ¿Cómo es que esas personas, que son tratadas como ganado en esta aburrida sociedad, no han intentado destruirla?

Shōgo Makishima

Desconectado SiriusBl@ck

  • *
  • Underc0der
  • Mensajes: 20
  • Actividad:
    1.67%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Noviembre 30, 2018, 02:50:55 pm »
Soluciones:

Código: [Seleccionar]
public class NumerosPrimos {
public static void main(String[] args) {

        int i, j;
        boolean esPrimo;
        boolean seguir = true;
        int Inicio = 2;
        int Final;
        String respuesta = "YES";
           
        Scanner sc = new Scanner(System.in);
       
        while(seguir) {
           
                System.out.println("Ingrese un nùmero inicial ");
                Inicio = sc.nextInt();
                System.out.println("Ingrese un número final ");
                Final = sc.nextInt();   

            for (i = Inicio; i <= Final; i++) {
                    esPrimo = true;
                    for (j = 2; j < i; j++) {
                    if (i % j == 0) {
                    esPrimo = false;
            }
           
          }         
                if (esPrimo) {
                System.out.print(i+"   ");

    }
    }
// end  for!

                    System.out.println("Estos son todos los números primos en el rango establecido");
           
                        System.out.println("Desea continuar? S/N");
                            respuesta = sc.next();
                            seguir = respuesta.equalsIgnoreCase("s");                       
        }
     }
}

 
Es intrigante. ¿Cómo es que esas personas, que son tratadas como ganado en esta aburrida sociedad, no han intentado destruirla?

Shōgo Makishima

Desconectado tr0n

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    8.33%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Diciembre 03, 2018, 10:29:40 pm »
Hola SiriusBl@CK,

Me parece bien el codigo, te recomendaría tres cosas:

  • Puedes usar un break dentro del condicional justo despues de que se determina que no es un número primo. De esta forma, el bucle termina y no se queda hasta que halla llegado a la variable Final.
  • Todo ese bucle for puede extraerse y colocarse dentro de un método aparte, el codigo puede volverse mas claro y facil de entender. También, le ayudara a aprender llamadas de métodos.
  • Aprende a usar git. Esto te ayudará a tener el codigo ordenado respecto a las muchas versiones que pueden surgir. Todos los IDEs de Java (Eclipse, Netbeans o IntelliJ) soportan integraciones con Git y puedes publicar tu codigo en Github

Saludos...

 

¿Te gustó el post? COMPARTILO!



[Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

Iniciado por graphixx

Respuestas: 3
Vistas: 1748
Último mensaje Febrero 23, 2015, 10:13:28 am
por Hu3c0
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 2385
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

Iniciado por graphixx

Respuestas: 9
Vistas: 5101
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
[LIBRO] Programación avanzada en Java - Sonia Jaramillo Valbuena

Iniciado por graphixx

Respuestas: 4
Vistas: 3748
Último mensaje Noviembre 09, 2018, 09:07:14 am
por ivaneliascalu
Tutorial: Traduccion de aplicaciones JAVA - Moviles [By :: SmartGenius :: ]

Iniciado por ProcessKill

Respuestas: 0
Vistas: 1607
Último mensaje Febrero 24, 2010, 04:26:07 pm
por ProcessKill