El reto que planteamos en unocero, la espiral de Ulam, ya tiene ganador. se trata de Martín Valenzuela, quien hizo un estupendo trabajo para presentar los resultados que el reto exigía.

Dice Martín: «Me dedico al desarrollo de sistemas y ahora estoy con el puesto de arquitecto de software en una empresa reconocida, a nivel nacional, Coppel, y pues estoy en uno de los tantos áreas de sistemas que tienen».

Recupera tus archivos perdidos con estos programas

Explica lo que hizo de esta manera: «Y pues nada, se me ocurrió realizar un programa que generara un número de números valga la redundancia, cuales quisiera el usuario, en este caso, se me ocurrió hacerlo con etiquetas (Labels), porque son más ligeras, en este caso si por ejemplo le dices que quieres generar 100 números, y encontrar sus primos son 100 etiquetas que se generan de manera dinámica.

El problema fue cuando quise generar una rutina para que el programa detectara cuál de los 4 lados estaba generando los números, entonces mediante un ejercicio que hice en mi cuaderno me di cuenta que existía un patrón al momento de generar los números y posicionándolos en forma contraria a las manecillas del reloj, de esta manera me di cuenta que en las ‘esquinas’ era donde yo tenía que marcar mi final de dicha fila que estaba generado y dependiendo del lado que acabara de generar era si continuaría generando el siguiente control hacia abajo, hacia la derecha, hacia arriba o hacia la izquierda (coordenadas), en si eso fue lo mas tedioso por así decirlo, y pues la detección de que si es primo o no, era revisar si ese numero de control que estaba generando era divisible por el mismo y la unidad y que no me dejaba residuo, entonces es que era un numero primo, caso contrario no lo era, para esto los controles se van generando mediante un ciclo (for) y el tope es el total de elementos que el usuario indica que desea generar, eso fue básicamente lo que hice, espero que lo hayan disfrutado al igual que yo».

Martín Valenzuela, ganador del reto de la espiral de Ulam

Y Martín nos aclara: «Siento que me faltó la parte que cuando se llenara la pantalla de controles y que no cupieran, en lugar de que aparecieran los scrolls, tratar de que el programa hiciera un especie de ‘alejamiento’, para así ver más controles en una misma imagen, pero bueno no tenía tiempo para echarle mas coco y eso fue lo que alcance a entregar».

El código fuente y el ejecutable, pueden obtenerse aquí y aquí, respectivamente.

Le haré llegar a Martín su premio y que esto sea un aliciente a su esfuerzo… ¡Felicidades!