C – Imprimir números primos en rango

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:

Generar números primos en C en límites definidos por usuario

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *