Ir ao conteúdo

Posts recomendados

Postado

Como faço para calcular o MDC de quatro (4) números inteiros?

Caso for possível, podeira me dar um exemplo.

Desde já agradeço.

Postado

@herbertbahia Sim, consigo. porém não consegui passar a logica para a linguagem c. Já fiz uma programação de mdc com 2 números mas n consigo fazer com mais.

  • Curtir 1
Postado

@herbertbahia Na verdade tinha feito com 3 numeros

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a=0,b=0,c=0;
    int t=0;
    printf("Digitar um numero diferente de 0: \n");
    scanf("%d %d %d", &a,&b,&c);
    while (a!=0 && b!=0 && c!=0){
        if(a<b && a<c){
            b=b%a;
            c=c%a;

        }else if(b<c){
            a=a%b;
            c=c%b;

        }else {
            a=a%c;
            b=b%c;

        }
    }
    if (a!=0){
        printf("MDC= %d",a);
    }
    else if (b!=0){
        printf("MDC= %d",b);
    }
    else {
        printf("MDC= %d",c);
    }
    return 0;
}

 

  • Curtir 1
Postado

a formula correta seria mais o menos isso

int mdc(int n1, int n2) {
  int div = 0, real = 0;
  for (div = 1; (div <= n1) && (div <= n2); div++) {
    if ((n1 % div == 0) && (n2 % div == 0)) {
      real = div;
      printf("%d\n", real);
    }
  }
  return real;
}

 

  • Amei 1
Postado

se tiver alguma dificuldade em entender. aqui está um exemplo 

#include <stdio.h>

int mdc(int n1, int n2) {
  printf("\n");
  int div = 0, real = 0;
  for (div = 1; (div <= n1) && (div <= n2); div++) {
    if ((n1 % div == 0) && (n2 % div == 0)) {
      real = div;
      printf("%d\n", real);
    }
  }
  return real;
}

int main() {
    int n = 0, valor = 0, cont = 0, num = 0;

    printf("Quantos numeros deseja digitar? ");
    scanf("%d", &n);

    printf("1o. numero da sequencia: ");
    scanf("%d", &valor);
    printf("%d ", valor);
    getchar();
    for (cont = 1; cont < n; cont++) {
      printf("%do. numero da sequencia: ", cont + 1);
      scanf("%d", &num);
      printf("%d ", num);
      getchar();

      valor = mdc(valor, num);
    }
    printf("VALOR FINAL DO MDC %d \n", valor);
    return 0;
  }

 

  • Amei 1
Postado

Para MDC entre 2 números use o algoritmo de Euclides:

int mdc (int a, int b){
    int temp;
    while (b != 0){
        temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

E para mais números, pode fazer o mdc do terceiro número com o resultado do mdc entre os 2 números, e continua fazendo isso pega o resultado e faz o mdc com o próximo número, para quantos números tiver.

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!