Parte 1: Elabore uma função que dados dois números inteiros A e B, verifique se o número A é divisível pelo número B. A função deve ser do tipo int e ela deve retornar o valor 1, se A for divisível por B , caso contrário ela retorna o valor zero.
Parte 2: Escreva uma função que dado um vetor V composto de N elementos inteiros, utilize a função do item (a) e determine o MMC dos elementos do vetor.
Parte 3: Escreva um programa principal que permita que o usuário forneça uma quantidade arbitrária de números inteiros e utilizando o subprograma da parte 2, determine o MMC desses números.

Passo 1

O enunciado pede três coisas: (1) criar uma função que teste se um inteiro A é divisível por B retornando 1 ou 0, (2) usar essa função para montar uma outra que calcule o MMC de um vetor de N inteiros, e (3) escrever o programa principal que leia uma quantidade arbitrária de números e imprima o MMC usando a função do item anterior. O conteúdo envolvido é programação em C (funções, vetores, laços) e conceitos de divisibilidade e MMC.

Passo 2

Para a Parte 1, fazemos uma função int divisivel(int A, int B) que verifica o caso B == 0 (divisão inválida) e depois faz o teste A % B == 0, retornando 1 se for verdade e 0 caso contrário.
Na Parte 2, primeiro criamos uma função auxiliar mmc2(int a, int b) para calcular o MMC de dois números a e b. Usamos uma abordagem de força bruta: começamos pelo maior entre a e b e vamos somando esse valor até encontrar um candidato que seja divisível por ambos, usando divisivel().
Ainda na Parte 2, montamos a função int mmc_vetor(int *V, int N) que itera sobre os elementos do vetor V. Inicializamos resultado = V[0] e, para cada V[i], atualizamos resultado = mmc2(resultado, V[i]). Assim acumulamos o MMC de todos os elementos.

Passo 3

Na Parte 3, escrevemos o main() que pede ao usuário o valor de N, aloca dinamicamente um vetor de tamanho N, lê os N inteiros, chama mmc_vetor(V, N) para obter o MMC e imprime o resultado. Por fim liberamos a memória e retornamos 0.

Resposta

#include <stdio.h>
#include <stdlib.h>
int divisivel(int A, int B) {
if (B == 0)
return 0; // divisão por zero não é válida
return (A % B == 0) ? 1 : 0;
}
int mmc2(int a, int b) {
if (a == 0 || b == 0)
return 0; // se algum for zero, MMC não está definido aqui
int maior = (a > b) ? a : b;
int candidato = maior;
while (!(divisivel(candidato, a) && divisivel(candidato, b))) {
candidato += maior; // testa o próximo múltiplo de “maior”
}
return candidato;
}
int mmc_vetor(int *V, int N) {
int resultado = V[0];
for (int i = 1; i < N; i++) {
resultado = mmc2(resultado, V[i]);
}
return resultado;
}
int main() {
int N;
printf(“Digite a quantidade de números: “);
scanf(”%d”, &N);
int *V = malloc(N * sizeof(int));  
if (!V) {                   
    printf("Erro de alocação!\n");  
    return 1;              
}

printf("Digite %d números inteiros:\n", N);  
for (int i = 0; i < N; i++) {  
    scanf("%d", &V[i]);     
}

int resultado = mmc_vetor(V, N);  
printf("O MMC dos números é %d\n", resultado);

free(V);  
return 0;  
}

Exercícios relacionados