martes, 16 de junio de 2026

Comprobar si un número es primo en C

Código del ejercicio:

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");
    int divisor = 1, contador = 0, num;
    printf("Ingrese un número: ");
    scanf("%i", &num);
    while(divisor <= num){
        if(num % divisor == 0){
            contador++;
        }
        divisor++;
    }
    if(contador == 2){
        printf("El número es primo");
    }else{
        printf("El número no es primo");
    }
    return 0;
}

Definición de los códigos del ejercicio:

#include <stdio.h> --> significa "standard input-output header" (cabecera estándar E/S), es un archivo de encabezado que tiene la información necesaria para incluir las funciones relacionadas con la entrada/salida en nuestro programa. Ejemplo printf, scanf, etc.
#include <locale.h> --> especificador de configuración regional.
int --> dato entero de 32 bits.
main() --> es la primera función de cada programa C que es responsable de iniciar la ejecución y finalización del programa. Es una función especial que siempre comienza a ejecutar código desde el ' principal ' que tiene ' int ' o ' void ' como tipo de datos de retorno. En otras palabras, una función main() es un punto de entrada del código de programación para iniciar su ejecución.
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
printf() --> permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla.
scanf() --> permite entrar datos en la memoria del ordenador a través del teclado.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
% --> el operador de modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.

Explicación del Código:

Este programa permite verificar si un número es primo. Un número primo solamente puede dividirse exactamente entre 1 y sí mismo.

Código del Programa

#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LC_CTYPE, "Spanish");

    int divisor = 1, contador = 0, num;

    printf("Ingrese un número: ");
    scanf("%i", &num);

    while(divisor <= num){

        if(num % divisor == 0){
            contador++;
        }

        divisor++;
    }

    if(contador == 2){
        printf("El número es primo");
    }else{
        printf("El número no es primo");
    }

    return 0;
}

Explicación del Código

  • #include <stdio.h>
    Permite utilizar funciones como printf() y scanf().
  • #include <locale.h>
    Se utiliza para configurar caracteres en español.
  • int main()
    Es la función principal donde comienza el programa.
  • setlocale(LC_CTYPE, "Spanish");
    Configura el idioma español para caracteres y acentos.
  • int divisor = 1, contador = 0, num;
    Se crean tres variables:

    divisor → almacena el número usado para dividir.
    contador → cuenta cuántas divisiones exactas existen.
    num → guarda el número ingresado por el usuario.
  • printf("Ingrese un número: ");
    Muestra un mensaje solicitando un número.
  • scanf("%i", &num);
    Guarda el número ingresado por el usuario.
  • while(divisor <= num)
    Repite el proceso mientras el divisor sea menor o igual al número.
  • if(num % divisor == 0)
    Comprueba si la división es exacta usando el operador módulo %.
  • contador++;
    Incrementa el contador cuando encuentra una división exacta.
  • divisor++;
    Incrementa el divisor en 1 para seguir comprobando.
  • if(contador == 2)
    Si el número tiene solamente 2 divisores exactos, entonces es primo.
  • printf("El número es primo");
    Muestra el mensaje si el número es primo.
  • printf("El número no es primo");
    Muestra el mensaje si el número no es primo.
  • return 0;
    Finaliza correctamente el programa.

Ejemplo

Si el usuario ingresa el número 5, el programa comprobará cuántas veces puede dividirse exactamente.

El número 5 solamente puede dividirse entre:

  • 1
  • 5

Como tiene solamente 2 divisores exactos, el resultado será:

El número es primo

No hay comentarios.:

Publicar un comentario

Convertir horas a minutos en HTML y JavaScript

Código del ejercicio: <! DOCTYPE html > < html lang = "es" > < head >     < meta charset = ...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️