Imprimir los números primos en un número determinado.





Advierto, no soy desarrollador de software, no obstante, suelo entretener el tiempo con algunos problemas que requieren habilidades de desarrollo. He traído a cuento un viejo problema (no es coincidencia). La impresión de números primos. En este caso trabajaré para la siguiente cifra 1000000. La idea es ir mejorando el algoritmo y medirlo cuantitativamente en el tiempo de ejecución. Para ello, he decidido mostrar los avances y cómo es que ataqué el problema.


Primer esfuerzo

Este código es el menos adecuado. Funciona, pero es demasiado lento, puesto que prueba todos y cada uno de los números. Esta versión tarda casi 1 hora.



Segundo esfuerzo

Agregando una simple sentencia que salga del ciclo y comience con el siguiente número hace mucho más eficiente el código. La idea detrás de esta mejora es que si sabemos que sólo debe haber dos divisiones exactas, cuando haya más; no tiene caso seguir probando los siguientes números. El tiempo que tarda ahora son 7 minutos y 25 segundos.


 

Comentarios

Entradas populares de este blog

Análisis de conexiones TIME_WAIT

Agregar un usuario a un grupo secundario

Desencriptar passwords AES y DES en WebLogic 10