[ Foro de BASIC ]

¿Se puede mejorar este programa que muestra los números primos del 1 al 100?

27-Dec-2014 20:20
Alejandro Saucedo
3 Respuestas

Hola a todos, esta es mi primera pregunta en el foro, y espero obtener una respuesta. Solo quiero decir que el curso de BASIC me está sirviendo muchisimo, sobretodo los ejercicios, que me permiten pensar cómo funcionan los programas, y me plantean problemas sumamente nuevos. Por esto, es totalmente gratificante resolver cada uno de los ejercicios, más si te pasas horas intentando descifrar la solución.

Sin más vueltas, quisiera saber si hay otro algorítmo para resolver este ejercicio, o si se puede mejorar mi código:

    | Ejercicio  7.8: Crea un programa que muestre los números primos entre 1 y 100.

Este es mi código:


      PRINT "2"
      FOR n = 3 TO 99 STEP 2
         FOR x = 2 TO n-1
            IF (n/x) = INT(n/x) THEN
               GOTO volver
            END IF
         NEXT x
         PRINT n
      volver: NEXT n


¡Desde ya, muchas gracias!


28-Dec-2014 01:47
Nacho Cabanes (+83)

Me alegro de que te esté gustando el curso de BASIC. Ya tienes nuevos apartados revisados, y pronto habrá también contenidos nuevos.

En cuanto a tu fuente, está bien así. Yo haría sólo dos cambios:

- Por legibilidad, el nombre "volver" quizá sea poco claro, y sea más explicativo algo como "siguienteNumero". De igual modo, en vez de "x" yo usaría "divisor".

- En cuanto a velocidad, puedes hacer que sea algo más rápido si pruebas los posibles divisores hasta n/2 en vez de llegar hasta n-1


28-Dec-2014 02:43
Alejandro Saucedo

Muchas gracias, la verdad me quedaban dudas sobre si habían otras posibilidades o alternativas; es más, había buscado en Internet un artículo sobre diversas formas de descubrir si un número era primo (http://es.wikihow.com/saber-si-un-n%C3%BAmero-es-primo), y creo que estaba esa forma, pero fui por lo más sencillo. ¡Muchas gracias por la respuesta!

PD: ¿Cómo hago para mostrar el código en otro formato acá en foro? Es que vi otras entradas y el código tenía un formato especial.


02-Jan-2015 11:10
Nacho Cabanes (+83)

Esa forma es sencilla y suficientemente rápida (al menos, para valores de n no muy grandes).

Para mostrar el código con colores lo puedes escribir entre


[code qbasic]



y [ /code] (sin espacio entre el corchete y la barra), pero no te preocupes por eso, porque puedo aplicar yo el estilo después con rapidez.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)