En este post te voy a mostrar cómo imprimir todos los números primos que existen en un rango en C.
Vamos a imprimir la lista de todos los números primos comprendidos entre un inicio y un fin usando el lenguaje C, por ejemplo, vamos a saber los números primos que hay desde el 1 hasta el 1000.
Generar números primos en C
Lo que tenemos que hacer en este programa en C es pedir el inicio y fin para imprimir los números primos.
Anteriormente hicimos una función para saber si un número es primo en C, así que solo hay que invocarla en cada iteración del ciclo, y si el número es primo, lo imprimimos.
Además, vamos a poner un contador que diga cuántos números primos existen en ese rango.
El código que imprime números primos en C queda así:
#include <stdio.h>
/*
Números primos en C
@author parzibyte
Visita mi blog para más tutoriales de programación:
https://parzibyte.me/blog
*/
// Prototipo de función
int esPrimo(int numero);
int main(void) {
int contador = 0; // Contar números primos
int inicio, fin;
printf("Inicio: \n");
scanf("%d", &inicio);
printf("Fin: \n");
scanf("%d", &fin);
for (int x = inicio; x <= fin; x++) {
if (esPrimo(x)) {
contador++;
printf("%d,", x);
}
}
printf("\nTotal: %d", contador);
return 0;
}
int esPrimo(int numero) {
if (numero == 0 || numero == 1) return 0;
/*
El número 4 es un caso especial, pues al dividirlo entre
2 el resultado es 2, y el ciclo nunca se cumple, indicando que
el 4 SÍ es primo, pero realmente NO lo es, así que si el número es 4
inmediatamente indicamos que no es primo (regresando 0)
Nota: solo es para el 4, los demás funcionan bien
*/
if (numero == 4) return 0;
for (int x = 2; x < numero / 2; x++) {
// Si es divisible por cualquiera de estos números, no
// es primo
if (numero % x == 0) return 0;
}
// Si no se pudo dividir por ninguno de los de arriba, sí es primo
return 1;
}
Un ejemplo de ejecución es el siguiente:
Escaneamos el inicio y el fin con scanf, y después hacemos un ciclo.
Ahí dice que son 168 números primos entre el 1 y el 1000; lo que coincide exactamente con lo que dice esta página de la Wikipedia.