Numeros primos Otro enfoque (solucionado Pag:2)

Iniciado por Norlak, 24 Noviembre 2011, 19:16 PM

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

Norlak

Perdonadme por hacer otro post pero en el otro si lo publico ahora no vereis lo que quiero añadir ahora por eso hago otro post de nuevo ruego disculpas.


he visto el problema con otro enfoque, alguien me puede decir porque falla gracias.

Citarpublic class Primos {
   void primo(){
      
   
   int maxi=97;
   int x=1;
   int resul;
   int y;
   for (x=2;x<maxi;x++){
        //   System.out.println(x);
System.out.println("divido "+maxi+" entre "+x);
  resul=maxi%x;
      if (resul==1.0){
         System.out.println("esto vale X cuando entra en el if "+x);
         System.out.println(maxi);
      
      }
   }
}
}

Hace practicamente todo lo que quiero, pero a la hora de mostrar "maxi" me lo muestra varias veces y yo quiero que solo me lo muestre una vez para que no se repitan tanto y tanto los mismo numeros. gracias nuevamente
Rectificar es de sabios, aprende de tus errores para ser alguien mejor.

$Edu$

Hacer que salga del bucle queres? si se cumple lo q queres q haga eso q pones y luego un break; no se si es break; en java pero es para salir del bucle for

Norlak

Cita de: $Edu$ en 24 Noviembre 2011, 20:35 PM
Hacer que salga del bucle queres? si se cumple lo q queres q haga eso q pones y luego un break; no se si es break; en java pero es para salir del bucle for

Gracias amigo por contestar aunque sea, si se que es un break, hay esque no e puesto lo que realmente necesito es que cuando comprueba si el 97 es primo  pues lo muestre pero solo una vez no todas las veces que lo necesite.


gracias
Rectificar es de sabios, aprende de tus errores para ser alguien mejor.

$Edu$

Pero no entiendo tu logica, porque haces esto:   if (resul==1.0) ?

Un numero es primo si lo divides entr 2, entre 3, 4, 5 ... hasta la raiz cuadrada de ese numero y la division no es exacta nunca.
Entonces decirlo de otra forma seria que si a 97 lo dividis entre 2 hasta su raiz y no hay un resto == 0 nunca entonces es primo.

Y lo que quieres es que si el numero se divide entre uno, q lo muestre a ese divisor que seria el valor de x.

Eso quieres hacer? tienes q usar el break para salir despues de eso

Norlak

Cita de: $Edu$ en 24 Noviembre 2011, 21:06 PM
Pero no entiendo tu logica, porque haces esto:   if (resul==1.0) ?

Un numero es primo si lo divides entr 2, entre 3, 4, 5 ... hasta la raiz cuadrada de ese numero y la division no es exacta nunca.
Entonces decirlo de otra forma seria que si a 97 lo dividis entre 2 hasta su raiz y no hay un resto == 0 nunca entonces es primo.

Y lo que quieres es que si el numero se divide entre uno, q lo muestre a ese divisor que seria el valor de x.

Eso quieres hacer? tienes q usar el break para salir despues de eso


nose solo son desbarios de 6 horas que llevo ya con esto y eso son intentos de algo que no a dado fruto XD de todas formas muchas gracias ya mañana posteare el resultado puesto me lo dara el profesor gracias de todas maneras
Rectificar es de sabios, aprende de tus errores para ser alguien mejor.

$Edu$

Pero explica como es la tarea desde un principio con la letra y vemos si te podemos dar una mano para q lo entiendas

Norlak

Cita de: $Edu$ en 24 Noviembre 2011, 21:06 PM
Pero no entiendo tu logica, porque haces esto:   if (resul==1.0) ?

Un numero es primo si lo divides entr 2, entre 3, 4, 5 ... hasta la raiz cuadrada de ese numero y la division no es exacta nunca.
Entonces decirlo de otra forma seria que si a 97 lo dividis entre 2 hasta su raiz y no hay un resto == 0 nunca entonces es primo.

Y lo que quieres es que si el numero se divide entre uno, q lo muestre a ese divisor que seria el valor de x.

Eso quieres hacer? tienes q usar el break para salir despues de eso

el if (resul==1)  es porque si el numero tiene de resto 0 en alguno de las divisiones hasta ese numero seria primo por ejemplo

7/2= el resto seria 3.5
7/7= el resto seria 1 ( ese uno es al que me refiero)
Rectificar es de sabios, aprende de tus errores para ser alguien mejor.

RyogiShiki

Yo se que estás empezando, pero si analisas con mucho detenimientos los codes de [SRC]isPrime al menos el de madpitbull_99 o el de BlackZeroX te darás cuenta que de complejos no tienen ni pisca, y que hacen exactamente lo que $Edu$ dice.

Saludos


$Edu$

Estas pensando todo mal, una cosa es el cociente y otra cosa el resto en una division entera. Y si no dejas la letra de la tarea no podremos ayudarte.. lo siento

RyogiShiki

Cita de: Norlak en 24 Noviembre 2011, 21:13 PM
el if (resul==1)  es porque si el numero tiene de resto 0 en alguno de las divisiones hasta ese numero seria primo por ejemplo

7/2= el resto seria 3.5
7/7= el resto seria 1 ( ese uno es al que me refiero)

Creo que tienes algunos conceptos mal. eso que dices no es el resto, es el resultado de la división en la primera el resto es uno, y e la segunda es 0.

Lee esto: http://es.wikipedia.org/wiki/Resto

Saludos