Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] ejercicio numero primo

Estas en el tema de ejercicio numero primo en el foro de Java en Foros del Web. buen día. Tengo el sgte código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código java: Ver original package numeroprimos ;   import java.util.Scanner ;   public class Numeroprimos {   ...
  #1 (permalink)  
Antiguo 25/02/2013, 16:18
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 12 años, 7 meses
Puntos: 7
ejercicio numero primo

buen día. Tengo el sgte código:

Código java:
Ver original
  1. package numeroprimos;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Numeroprimos {
  6.  
  7.     public static void main(String[] args) {
  8.         /*Escriba un programa que use dos bucles for anidados y el operador de módulo (%)
  9.          * para detectar e imprimir números primos  */
  10.  
  11.         Scanner leer = new Scanner(System.in);
  12.  
  13.         int num = leer.nextInt();
  14.  
  15.  
  16.  
  17.  
  18.         for (int z = 1; z <= num; z++) {
  19.             int division = num % z;
  20.  
  21.             if (division != 0) {
  22.                 System.out.println("el numero " + num + " no es primo");
  23.             } else {
  24.                 System.out.println("el numero " + num + " es primo");
  25.             }
  26.         }
  27.  
  28.  
  29.  
  30.     }
  31. }

Digamos que me da el resultado esperado y no esperado, porque obviamente el numero no es primo, pero en pantalla me sale esto :

Código:
el numero 4 es primo
el numero 4 es primo
el numero 4 no es primo
el numero 4 es primo
Sé que me lo imprime 4 veces porque esta dentro del for, pero si lo saco me dice que la variable division no se encuentra. ¿Cómo puedo resolver esto?.

Gracias
  #2 (permalink)  
Antiguo 25/02/2013, 18:06
 
Fecha de Ingreso: marzo-2011
Mensajes: 342
Antigüedad: 10 años, 1 mes
Puntos: 97
Respuesta: ejercicio numero primo

Para eso basta con declarar la variable fuera del for y asignarla dentro, saludos

Código java:
Ver original
  1. int division;
  2.        
  3.         for (int z = 1; z <= num; z++) {
  4.             division = num % z;
  5.  
  6.             if (division != 0) {
  7.                 System.out.println("el numero " + num + " no es primo");
  8.             } else {
  9.                 System.out.println("el numero " + num + " es primo");
  10.             }
  11.         }
  #3 (permalink)  
Antiguo 26/02/2013, 09:38
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: ejercicio numero primo

Cita:
Iniciado por sebastopols Ver Mensaje
Para eso basta con declarar la variable fuera del for y asignarla dentro, saludos

Código java:
Ver original
  1. int division;
  2.        
  3.         for (int z = 1; z <= num; z++) {
  4.             division = num % z;
  5.  
  6.             if (division != 0) {
  7.                 System.out.println("el numero " + num + " no es primo");
  8.             } else {
  9.                 System.out.println("el numero " + num + " es primo");
  10.             }
  11.         }
Ya lo hice, pero tampoco.

Código java:
Ver original
  1. package numeroprimos;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Numeroprimos {
  6.  
  7.     public static void main(String[] args) {
  8.         /*Escriba un programa que use dos bucles for anidados y el operador de módulo (%)
  9.          * para detectar e imprimir números primos  */
  10.  
  11.         Scanner leer = new Scanner(System.in);
  12.  
  13.         int num = leer.nextInt();
  14.         int division=0;
  15.  
  16.  
  17.         for (int z = 1; z <= num; z++) {
  18.  
  19.             division = num % z;
  20.  
  21.            
  22.         }
  23.        
  24.         if (division == 0) {
  25.                 System.out.println("el numero " + num + " es primo");
  26.             } else {
  27.                 System.out.println("el numero " + num + " no es primo");
  28.             }
  29.     }
  30. }

¿Alguna sugerencia?. El siempre me va a imprimir que el numero es primo porque arriba estoy diciendo que la division es igual a 0 pero al pasarla por el for no toma el resultado. Gracias
  #4 (permalink)  
Antiguo 26/02/2013, 10:26
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 12 años
Puntos: 306
Respuesta: ejercicio numero primo

Todo lo que está en el bucle for se va a ejecutar n veces.

Si el print está en el for, se imprimirá n veces.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 26/02/2013, 10:28
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 12 años, 8 meses
Puntos: 188
Respuesta: ejercicio numero primo

Un número ES primo SI sólo es DIVISIBLE entre 1 y SÍ MISMO y además es un número natural mayor que uno.

Conclusiones:

boolean isPrimo = true; // antes de nada vamos a pensar que por defecto es primo

Seguimos

if (num > 1) {
for (int z = 2; z < num; z++) { // Excluimos 1 y num de las iteraciones

int resto = num % z; // No es una division, es el resto

if (resto == 0) {
isPrimo = false;
break; // Sabemos a ciencia cierta que es falso y salimos del bucle
}
}
} else {
isPrimo = false; // Es numero natural menor o igual que uno
}

// Finalmente

if (isPrimo) {
System.out.println("el numero " + num + " es primo");
} else {
System.out.println("el numero " + num + " no es primo");
}

Ahora que te lo he resuelto, currate como dios manda un control de excepciones para que si escribes algo que no sea un int en el scanner no te de un pete, y que te vuelva a pedir ingresar el número o te de la opción de salir.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #6 (permalink)  
Antiguo 26/02/2013, 16:04
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: ejercicio numero primo

Gracias a todos por las respuestas

Etiquetas: ejercicio, numero, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:58.