Páginas

sábado, 2 de octubre de 2010

Serie de Números Primos con un solo ciclo

Existen muchas formas de hallar números primos, uno de los ejercicios clásicos es tal ves generar la serie de los números primos, esto es 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, …

Ahora que tal si nos piden generar los n primeros términos de la serie de los primos, fácil no?, pero que tal si nos lo piden hacerlo con un solo ciclo repetitivo (while o for), interesante y un poco complejo, pero este algoritmo lo resuelve óptimamente con un solo ciclo repetitivo y además sencillo, véalo usted mismo su diagrama de flujo.

Serie Primos A3D
Este algoritmo me trajo muchas satisfacciones personales, es por eso que le debo mucho y te aconsejo que te lo memorices ya que te servirá de mucho si es que estas empezando con el mundo de la programación. El código Java es el siguiente:

Scanner e = new Scanner(System.in);
int n = e.nextInt();
int c = 1;
int p = 2;
int d = 2;
while (c <= n) {
   if (p % d == 0) {
      if (p == d) {
         System.out.print(p + ", ");
         c++;
      }
      d = 2;
      p++;
   }
   else
      d++;
}

Muy sencillo no?, lo que antes era un dolor de cabeza para muchos iniciadores de la programación ahora es pan comido. Descárgate el código completo Java del siguiente enlace.

28 comentarios:

  1. Hola daniel un abrazo fuerte y un saludo cordial
    me encanta este blog que preparaste hay temas muy interesantes es toda una nueva formacion y actual la que se hace y de lo cual nosotros necesitamos facilidad a la informacion gracias apor eso es un gran aporte lo que tu haces con esta clase de cosas nos das una mano en ti un apoyo gracias por todo me despito hasta otra oportinidad de un amigo y alumno

    ResponderEliminar
  2. Muy sencillo el algoritmo para memorizar.

    ResponderEliminar
  3. Lo importante no es memorizar el algoritmo.... si no realmente como funciona, eso es uno de los muchos errores que cometemos al empezar con el aprendizaje de algoritmos.

    ResponderEliminar
  4. agradesco que compartas tus conocimientos ayudas a gente que quiere progresar en el mundo de la programacion pero a su ves muchos no les interesa ese ambiente solo les importa pasar.

    mis felicitaciones para ti y tu pagina.
    desde el estado duenio de la ciudad mas peligrosa del mundo. :D

    ResponderEliminar
  5. HOLAAAA necesito una ayuda!! tu programa esta cool.. pero a mi prof ademas de eso se le ocurrio hacer un programa que determine cuales son numeros primos en una serie dada.. plisss necesito ayudaaaaa!!! como lo hago???

    ResponderEliminar
  6. gracias me ayudo mucho resolví mis dudas solo espero que genere todos los primos , haciendo la prueba de escritorio sale así que estoy muy contento por todo atte. j.p.m.v. esta

    ResponderEliminar
  7. hola, yo en verdad necesito ayuda con un programa que lea "x"
    numero y me diga los numeros anteriores a esto incluyendolo yo no tengo ni idea d ecomo hacerlo soy nueva en esto ayudaaaa por favor......

    ResponderEliminar
  8. para los diez primeros numeros pares e impares intercalados , como podria ser.

    ResponderEliminar
  9. buenismio me gustaria que ma ayudases ya q recien comienzo mis clases de programacion y que explicaras un pòco mas, me pidieron generar los n primeros numeros primos aun no se programar estamos en diagrama de flujos ayudaaaaaaaaaaaaaaa...!

    ResponderEliminar
  10. Disculpa me puedes decir que significa cada una de esas letras, es q soy nuevo... Se te agradece.. :3

    ResponderEliminar
  11. el programa no me acepta el operador de porcentaje. ¿que ago?

    ResponderEliminar
  12. cual sera el significado de cada letra?
    Soy nuevo en esot de los diagramas y de plano no entendi nada

    ResponderEliminar
  13. NO FUNCIONA EL ALGORITMO U.U

    ResponderEliminar
  14. SIIIIIII FUNCIONA :D GRACIAS POR EL APORTE ESTA MUY BUENO,

    ResponderEliminar
  15. SIIIIIII FUNCIONA :D GRACIAS POR EL APORTE ESTA MUY BUENO,

    ResponderEliminar
  16. Anghelo, contame, el cuarto simbolo en el diagrama de flujo, contando desde el inicio, donde "c" menor o igual que "n", que significa ?.

    ResponderEliminar
  17. Quiero que me imprima los primos pero desde el 1, com o puedo hacer, ayuda por favor.

    ResponderEliminar
  18. no entiendo soy iniciado muy buena la intencion peor sin explicacion es lo mismo que no saber como usarlo

    ResponderEliminar
  19. excelente aporte!! lo que no entiendo es por que introduces un contador c++ siendo que podria funcionar perfectamente sin ella

    ResponderEliminar
  20. me sale el 15 21 y esos no son numeros primos ... mmm no me funciono

    ResponderEliminar
    Respuestas
    1. yo le modifique algunas cosas y muestra los 100 primeros números primos

      public void numerosPrimos() {

      int n = 26;
      int p = 2;
      int d = 2;
      while (n > 0) {
      if (p % d == 0) {
      if (p == d) {
      System.out.print(p + "/");
      n--;
      }
      d = 2;
      p++;
      } else {
      d++;
      }
      }

      }

      Eliminar
  21. Hola me gustaría que me ayuden, he ingresado varios código al programa Java pero el problema es que habano cuando términos de colocar el código completo me pide ingresé un numero, ingreso el 8 que se que no esprimo y queda el programa como que sigue cargando y no me da ningún resultado si es o no primo. Necesito ayuda urgente por favor es un trabajo práctico.No se quesé que estará pasando!
    Gracias

    ResponderEliminar
  22. Hey gracias
    he tratado en todas fprmas este algoritmo, pero eran demasiado complicados y casi siempre me salia fracaso
    Y esto es justo lo que buscaba, sencillez y eficiencia
    felicidades y gracias

    ResponderEliminar
  23. gracias. en que software diseñas tus diagramas amigo.

    ResponderEliminar

Deja tu comentario, agradecimiento, sugerencia o critica.