Serie de números primos con un solo ciclo

Un numero primo es un número que solamente tiene dos divisores el numero 1 y el mismo. Generar la serie de los números primos es un ejercicio clásico cuando uno empieza con la programación, por ejemplo los cien primeros números primos son:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, …

Ahora que tal si nos piden generar los n primeros términos de la serie de primos, pero con un solo ciclo repetitivo (while o for). Interesante y tal vez poco complejo, sin embargo este algoritmo lo resuelve de forma genial con un solo ciclo repetitivo, además de sencillo. Veamos su diagrama de flujo.

SeriePrimosA3D18

Este algoritmo me trajo muchas satisfacciones personales, por eso lo recomiendo para los que están empezando con el mundo de la programación. El código Java es el siguiente:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        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++;
            }
        }
    }
}

Cualquier duda puedes dejarla en los comentarios, muchas gracias por tu visita. Contarte también que publicamos videos de Firebase, Android y más en nuestro canal en YouTube, suscríbete para recibir novedades.

Daniel Alvarez

Software engineer, developer and producer of native mobile applications for Android and iOS, Angular, Firebase. Teacher. Speaker. Creating bots.