Título: Por favor ayuda con un programa en C, números primos Publicado por: rod89 en 8 Noviembre 2014, 05:42 am tienen razón, mejor aprender
Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: crack81 en 8 Noviembre 2014, 07:11 am tu codigo espero te sirva y practica mas
Código
Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: leosansan en 8 Noviembre 2014, 16:51 pm tu codigo espero te sirva y practica mas Sólo le veo un "pero" a tu propuesta y es que si introduces 123456789 sencillamente se eterniza la respuesta. El problema radica en que después de encontrar el primo mayor, 123456761, sigue comprobando con el 123456760, 123456759, ...... y como ves son muchos millones de primos a comprobar hasta llegar al 23. La modificación que propongo lo que hace es, después de localizar al primo mayor más próximo al número introducido, es continuar comprobando desde el número introducido menos el mayor primo calculado es decir: 12346789 - 123456761 = 28 e inferiores. Como ves se pasa de comprobar millones de números a unas pocas decenas lo que redunda en una mayor velocidad: :) Código
Evidentemente se puede mejorar con sucesivas aproximaciones pero no es plan de hacer la tarea totalmente. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: crack81 en 8 Noviembre 2014, 17:02 pm Tienes una razón barbara y que la verdad que como explicas se reduciría el tiempo enormemente.
Esto le servirá mucho a nuestro compañero pero hay recordad que esta es su tarea nosotros damos una posible solución. Pero a un así me gusto tu idea leosansan saludos... Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: leosansan en 8 Noviembre 2014, 17:06 pm .................................................. Pero a un así me gusto tu idea leosansan saludos... Me alegra tu opinión y , efectivamente se puede mejorar pero tal como indicas, no es plan de hacerle la tarea con virguerias. ;) Un fuerte saludo amigo crack81. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: avesudra en 8 Noviembre 2014, 18:14 pm Me alegra tu opinión y , efectivamente se puede mejorar pero tal como indicas, no es plan de hacerle la tarea con virguerias. ;) Se puede afinar incluso un poquito más, descartando los impares del iterador. Pero no sé si poner el codigo, por lo de la tarea y eso..Un fuerte saludo amigo crack81. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: crack81 en 8 Noviembre 2014, 18:48 pm como dijo avesudra se puede afinar mas y lo hice quitando todos los numeros pares mayores a 2 con esto se reducen en 50% la velocidad de procesamiento
si alguien quiere ver cuanto mejora el rendimiento en su maquina les dejo el codigo completo les da el tiempo de procesamiento en milisegundos mi version original con una cifra de 10000000 casi se quedaba congelada la maquina con el arreglo de leosansan tarda unos 3319 milisegundos y descartando los pares unos 1572 milisegundos esto puedo variar por la velocidad de la maquina donde se realize aun asi les dejo el codigo completo para que hagan sus pruebas Código
Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: avesudra en 8 Noviembre 2014, 19:01 pm Poneis los códigos tan inentendibles que casi no puedo leerlos jajaja dejo el mío:
EDITO: CORREGIDO GRACIAS crack81 por avisar. Código
Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: crack81 en 8 Noviembre 2014, 20:51 pm avesudra revisa tu programa porque se bloquea si pones 27 o un numero mayor a 10,000 se mete en un bucle infinito no se cual pueda ser el error porque ahora no tengo tiempo
y la funcion que puse en mi codigo la "performancecounter_diff" solo es para medir el tiempo que tarda la aplicacion pero la puedes quitar que solo es para fines demostrativos Título: Re: Por favor ayuda con un programa en C, números primos Publicado por: leosansan en 9 Noviembre 2014, 16:24 pm EDITADO con una sensible mejoría.
como dijo avesudra se puede afinar mas y lo hice quitando todos los numeros pares mayores a 2 con esto se reducen en 50% la velocidad de procesamiento si alguien quiere ver cuanto mejora el rendimiento en su maquina les dejo el codigo completo les da el tiempo de procesamiento en milisegundos mi version original con una cifra de 10000000 casi se quedaba congelada la maquina con el arreglo de leosansan tarda unos 3319 milisegundos y descartando los pares unos 1572 milisegundos No me gusta en general el uso de las operaciones "%" y "sqrt" por su costo y en lo posible evito su uso. No es que esté mal pero si puedo evitarlas mejor que mejor. Aquí una salida, como indica crack81, para 10 000 000: Código
Como se observa he bajado el valor de crack81 de 1572 ms a tan solo 274 ms. :) Y respetando la idea original de crack81 ahí va la función que logra lo anterior: Código
¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: programacion Publicado por: daryo en 9 Noviembre 2014, 17:31 pm leosansan si pongo 9000 en tu ultimo codigo me da 8999 -1 que raro
PD: con el unico que al parecer no pasa eso es con el primero de crack81 |