Número primo o compuesto utilizando recursividad

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a escribir un programa en C que verifique si un número es primo o compuesto utilizando la recursividad. Un número primo es aquel que es divisible solo por 1 y por sí mismo, mientras que un número compuesto es aquel que no es primo. Utilizaremos la recursividad para escribir el programa, que es una técnica para resolver problemas dividiéndolos en problemas más pequeños y simples.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/if_else("If...Else") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} c/if_else -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} c/function_declaration -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} c/function_parameters -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} c/recursion -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} c/user_input -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} c/output -.-> lab-123309{{"Número primo o compuesto utilizando recursividad"}} end

Obtener la entrada del usuario

Comenzaremos pidiendo al usuario que ingrese un número entero positivo para verificar si es un número primo o compuesto utilizando la función scanf. Agrega el siguiente código en el archivo main.c dentro de la función int main():

#include <stdio.h>

int main()
{
    int num;
    printf("Enter a positive integer: ");
    scanf("%d", &num);
    return 0;
}

Escribir la función recursiva para verificar el número

En este paso, escribiremos la función recursiva para verificar si el número es primo o compuesto. Esta función toma dos argumentos: el número a verificar y una variable contador que comienza desde el número dividido por 2. Si el contador llega a 1, la función devuelve 1 lo que indica que el número es primo, de lo contrario, la función hace una llamada recursiva a sí misma con la variable contador disminuida. Si en algún momento, el número es divisible por la variable contador sin ningún residuo, la función devuelve 0 lo que indica que el número es compuesto. Agrega el siguiente código al final del archivo main.c:

int isPrime(int n, int c)
{
    if (c == 1) {
        return 1;
    } else {
        if (n % c == 0) {
            return 0;
        } else {
            return isPrime(n, c - 1);
        }
    }
}

Verificar y mostrar el resultado

En este paso, llamaremos a la función isPrime para verificar si el número es primo o compuesto. Basado en el resultado de la función, mostraremos el mensaje adecuado al usuario. Agrega el siguiente código al final del archivo main.c para completar el programa:

int main()
{
    int num, prime;
    printf("Enter a positive integer: ");
    scanf("%d", &num);
    prime = isPrime(num, num/2);
    if (prime == 1) {
        printf("%d is a prime number.\n", num);
    } else {
        printf("%d is a composite number.\n", num);
    }
    return 0;
}

Compilar y ejecutar el programa

En este paso, compilaremos y ejecutaremos el programa. Abra la terminal y navegue hasta el directorio donde se encuentra el archivo main.c. Agregue el siguiente comando en la terminal para compilar el programa:

gcc main.c -o main

Agregue el siguiente comando para ejecutar el programa:

./main

Ingrese un número entero positivo cuando se le solicite y presione Enter. El programa mostrará si el número es primo o compuesto.

Resumen

En este laboratorio, hemos aprendido cómo escribir un programa en C que verifica si un número es primo o compuesto utilizando la recursividad. También aprendimos cómo utilizar la función scanf para obtener la entrada del usuario, escribir una función recursiva para verificar si un número es primo o compuesto y mostrar el resultado al usuario. La recursividad es una técnica útil para resolver problemas que implican descomponerlos en problemas más pequeños y simples.