Título: Numeros primos Otro enfoque (solucionado Pag:2) Publicado por: Norlak en 24 Noviembre 2011, 19:16 pm 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. Citar public 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 Título: Re: Numeros primos Otro enfoque Publicado por: $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
Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 20:55 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 Título: Re: Numeros primos Otro enfoque Publicado por: $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 Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 21:10 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 Título: Re: Numeros primos Otro enfoque Publicado por: $Edu$ en 24 Noviembre 2011, 21:12 pm Pero explica como es la tarea desde un principio con la letra y vemos si te podemos dar una mano para q lo entiendas
Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 21:13 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) Título: Re: Numeros primos Otro enfoque Publicado por: RyogiShiki en 24 Noviembre 2011, 21:16 pm Yo se que estás empezando, pero si analisas con mucho detenimientos los codes de [SRC]isPrime (http://foro.elhacker.net/java/src_isprime-t345554.0.html) 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 Título: Re: Numeros primos Otro enfoque Publicado por: $Edu$ en 24 Noviembre 2011, 21:17 pm 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
Título: Re: Numeros primos Otro enfoque Publicado por: RyogiShiki en 24 Noviembre 2011, 21:20 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 Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 21:23 pm Yo se que estás empezando, pero si analisas con mucho detenimientos los codes de [SRC]isPrime (http://foro.elhacker.net/java/src_isprime-t345554.0.html) 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 Gracias por la colaboracion, yo necesito que me diga los numeros primos comprendidos en el maximo de numeros decimal que puede almacenar para eso utilizo el "Integer.Maxime.Value" entonces todos teneis un codigo dode pones un numero, y yo no quiero un numero necesito que compruebe todos los numeros, que con cada numero haga la division de todos sus anteriores y me de si es primo o no y me lo muestre en pantalla... por eso no me valen esos codigos porque por mas que intento modificarlos para qu me funcione no puedo Gracias por todo! Título: Re: Numeros primos Otro enfoque Publicado por: $Edu$ en 24 Noviembre 2011, 21:29 pm Dices que por ejemplo si maxime.value es 32767 por ahi (ni idea cuanto es ahora) que te muestre en pantalla todos los numeros primos hasta ahi? O no sera una funcion lo que tenes que hacer que si le pasas como valor el numero 20, mostrara hasta el 20 los numeros primos, que serian 2 , 3, 5, 7, 11, 13, 17, 19 no? eso quieres?
Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 21:33 pm Dices que por ejemplo si maxime.value es 32767 por ahi (ni idea cuanto es ahora) que te muestre en pantalla todos los numeros primos hasta ahi? O no sera una funcion lo que tenes que hacer que si le pasas como valor el numero 20, mostrara hasta el 20 los numeros primos, que serian 2 , 3, 5, 7, 11, 13, 17, 19 no? eso quieres? yo lo que quiero es una funcion que me muestre todos los primos del maximo (180.000.000) mas o menos pues que me de todos los primos desde el 1 hasta ese valor eso es lo que quiero conseguir, gracias por lo del resto estaba super desorientado! Título: Re: Numeros primos Otro enfoque Publicado por: RyogiShiki en 24 Noviembre 2011, 21:35 pm Bueno entonces, viste el video que te pase? Este: http://minidosis.org/C++/Tablas/Criba%20de%20Erat%C3%B3stenes/ Lo más complejo que tiene es un Array. Investigaste sobre la Criba de Eratóstenes?
Saludos Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 21:43 pm Bueno entonces, viste el video que te pase? Este: http://minidosis.org/C++/Tablas/Criba%20de%20Erat%C3%B3stenes/ Lo más complejo que tiene es un Array. Investigaste sobre la Criba de Eratóstenes? Saludos la criba de eratostenes si la mire compañero pero aun me queda algo grande, el array seria una solucion perfecta si ya me lo hubieran explicado amigo... aun no llemamos a eso asique no puedo realizar el ejercicio con algo que no nos ha explicado aun asi le hechare un super vistazo gracias a todos de verdad, me alegra saber que esta comunidad de verda la gente ayuda Título: Re: Numeros primos Otro enfoque Publicado por: $Edu$ en 24 Noviembre 2011, 21:46 pm Si te supieras explicar, no tendrias ni q crear 2 temas para esto..
Hace un bucle dentro de otro, el de afuera q sera un bucle desde 1 hasta ese numero "maximo" q tanto dices y el bucle de adentro se encargara de verificar si es primo o no. procedimiento primo( maximo) { for (i = 2; i <= maximo; i++) { for (k = 2; k < i; k++) { if (i%k == 0) {primo = false; break;} // salimos porque no es primo } if (primo) Mostrar Primo; } } Lo hice asi nomas, para q entiendas la idea de algo facil q puedes hacer, algunas cosas tendras q cambiarla pero la idea la tendras pd: Fijate q hago q siga hasta el numero y no hasta la raiz como habia dicho antes, pero eso si quieres lo optimizas vs Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 21:49 pm Si te supieras explicar, no tendrias ni q crear 2 temas para esto.. Hace un bucle dentro de otro, el de afuera q sera un bucle desde 1 hasta ese numero "maximo" q tanto dices y el bucle de adentro se encargara de verificar si es primo o no. procedimiento primo( maximo) { for (i = 2; i <= maximo; i++) { for (k = 2; k < i; k++) { if (i%k == 0) {primo = false; break;} // salimos porque no es primo } if (primo) Mostrar Primo; } } Lo hice asi nomas, para q entiendas la idea de algo facil q puedes hacer, algunas cosas tendras q cambiarla pero la idea la tendras pd: Fijate q hago q siga hasta el numero y no hasta la raiz como habia dicho antes, pero eso si quieres lo optimizas vs voy a intentar pulirlo ahora te cuento gracias amigo, y perdona por no saber explimarme intente ser claro pero no lo hice, de los errores aprendemos gracias Título: Re: Numeros primos Otro enfoque Publicado por: Norlak en 24 Noviembre 2011, 22:13 pm Citar int i; int j=1836311903;//maximo valor Tabulo tbl=new Tabulo(); for (int num=1;num<=j;num++){ for (i=2;num%i!=0 && i<(num-1);i++){ } if (num%i!=0 || num==2){ incluso le he creado un modulo para que los tabule y no quede tan basto la lista Citar int columna=0;//Ponemos columna a cero, para que cuando se imprima las columnas que queramos, vuelva a imprimir en la primera columna void tabulando (int suma){//este metodo recibe un numero. System.out.format("%15d" ,suma);//aqui imprime el numero suma, el espacio de impresion lo da el %20, la d significa entero columna++;//sumamos las columnas. if (columna==7){//5 son las columnas que vamos a imprimir System.out.println();//Aqui damos un salto de linea columna=0;//ponemos columna a 5 para que empiece desde la columna 1 a imprimir de nuevo } } } Gracias a todos en especial, a Edu,RyogiShiki,MadPitbull, y todos los que por lo menos han intentado hecharme una mano. gracias Título: Re: Numeros primos Otro enfoque (solucionado Pag:2) Publicado por: $Edu$ en 24 Noviembre 2011, 22:26 pm Bueno no se entiende si lo terminaste mirando el codigo, que no entiendo nada pero bueno felicitaciones si lo lograste entender y hacerlo.
|