Número Primo ou Composto Usando Recursão

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos a escrever um programa em C que verifica se um número é primo ou composto usando recursão. Um número primo é um número que é divisível apenas por 1 e por ele mesmo, enquanto um número composto é um número que não é primo. Usaremos recursão para escrever o programa, que é uma técnica para resolver problemas dividindo-os em problemas menores e mais simples.

Obtendo a Entrada do Usuário

Começaremos pedindo ao usuário para inserir um número inteiro positivo para verificar se é um número primo ou composto, usando a função scanf. Adicione o seguinte código no arquivo main.c, dentro da função int main():

#include <stdio.h>

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

Escrevendo a Função Recursiva para Verificar o Número

Nesta etapa, escreveremos a função recursiva para verificar se o número é primo ou composto. Esta função recebe dois argumentos - o número a ser verificado e uma variável contador que começa a partir do número dividido por 2. Se o contador atingir 1, a função retorna 1, o que indica que o número é primo; caso contrário, a função faz uma chamada recursiva a si mesma com a variável contador decrementada. Se, em algum momento, o número for divisível pela variável contador sem resto, a função retorna 0, o que indica que o número é composto. Adicione o seguinte código ao final do arquivo 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);
        }
    }
}

Verificando e Apresentando o Resultado

Nesta etapa, chamaremos a função isPrime para verificar se o número é primo ou composto. Com base no resultado da função, exibiremos a mensagem apropriada ao usuário. Adicione o seguinte código ao final do arquivo main.c para completar o 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;
}

Construindo e Executando o Programa

Nesta etapa, compilaremos e executaremos o programa. Abra o terminal e navegue até o diretório onde o arquivo main.c está localizado. Adicione o seguinte comando no terminal para compilar o programa:

gcc main.c -o main

Adicione o seguinte comando para executar o programa:

./main

Insira um número inteiro positivo quando solicitado e pressione Enter. O programa exibirá se o número é primo ou composto.

Resumo

Neste laboratório, aprendemos como escrever um programa em C que verifica se um número é primo ou composto usando recursão. Também aprendemos como usar a função scanf para obter entrada do usuário, escrever uma função recursiva para verificar se um número é primo ou composto e exibir o resultado ao usuário. A recursão é uma técnica útil para resolver problemas que envolvem dividi-los em problemas menores e mais simples.