MDC: Máximo Divisol Comun

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

MDC: Máximo Divisol Comun

Mensagem  Renancr em Sab 6 Nov 2010 - 19:04

2) Faça uma função em C++ que receba dois argumentos inteiros positivos e imprima o MDC – Máximo Divisor Comum. Abaixo um exemplo para calcular o MDC, considere os números 30 e 48:

Máximo Divisor Comum


Dois números naturais sempre têm divisores comuns. Por exemplo: os divisores comuns de 12 e 18 são 1,2,3 e 6. Dentre eles, 6 é o maior. Então chamamos o 6 de máximo divisor comum de 12 e 18 e indicamos m.d.c.(12,18) = 6.

O maior divisor comum de dois ou mais números é chamado de máximo divisor comum desses números. Usamos a abreviação m.d.c.


Alguns exemplos:
mdc (6,12) = 6
mdc (12,20) = 4
mdc (20,24) = 4
mdc (12,20,24) = 4
mdc (6,12,15) = 3

CÁLCULO DO M.D.C.
Um modo de calcular o m.d.c. de dois ou mais números é utilizar a decomposição desses números em fatores primos.

1) decompomos os números em fatores primos;
2) o m.d.c. é o produto dos fatores primos comuns.

Acompanhe o cálculo do m.d.c. entre 36 e 90:
36 = 2 x 2 x 3 x 3
90 = 2 x 3 x 3 x 5

O m.d.c. é o produto dos fatores primos comuns => m.d.c.(36,90) = 2 x 3 x 3
Portanto m.d.c.(36,90) = 18.

Escrevendo a fatoração do número na forma de potência temos:
36 = 22 x 32
90 = 2 x 32 x5
Portanto m.d.c.(36,90) = 2 x 32 = 18.

O m.d.c. de dois ou mais números, quando fatorados, é o produto dos fatores comuns a eles, cada um elevado ao menor expoente.




CÁLCULO DO M.D.C. PELO PROCESSO DAS DIVISÕES SUCESSIVAS
Nesse processo efetuamos várias divisões até chegar a uma divisão exata. O divisor desta divisão é o m.d.c. Acompanhe o cálculo do m.d.c.(48,30).

Regra prática:

1º) dividimos o número maior pelo número menor;
48 / 30 = 1 (com resto 18)

2º) dividimos o divisor 30, que é divisor da divisão anterior, por 18, que é o resto da divisão anterior, e assim sucessivamente;
30 / 18 = 1 (com resto 12)

18 / 12 = 1 (com resto 6)

12 / 6 = 2 (com resto zero - divisão exata)

3º) O divisor da divisão exata é 6. Então m.d.c.(48,30) = 6.


NÚMEROS PRIMOS ENTRE SI
Dois ou mais números são primos entre si quando o máximo divisor comum desses números é 1.


Exemplos:
Os números 35 e 24 são números primos entre si, pois mdc (35,24) = 1.
Os números 35 e 21 não são números primos entre si, pois mdc (35,21) = 7.


PROPRIEDADE DO M.D.C.
Dentre os números 6, 18 e 30, o número 6 é divisor dos outros dois. Neste caso, 6 é o m.d.c.(6,18,30). Observe:

6 = 2 x 3
18 = 2 x 32
30 = 2 x 3 x 5
Portanto m.d.c.(6,18,30) = 6

Dados dois ou mais números, se um deles é divisor de todos os outros, então ele é o m.d.c. dos números dados.

Fonte: [Você precisa estar registrado e conectado para ver este link.]

Não Copiem

Código:
#include <iostream>
using namespace std;

void main()
{
  int num1, num2, resto, swap, x1, x2;
  char resp;

  do{
      system("cls");
     do{
        system("cls");
        cout<< "\tDigite o primeiro numero\n\t";
        cin>> num1;
        if(num1 < 1)
        {
           system("cls");
           cout<< "\n\tO valor não pode ser manor do que 1.\n\n";
           system("pause");
        }
     }while(num1 < 1);
     do{
        system("cls");
        cout<< "\tDigite o segundo numero\n\t";
        cin>> num2;
        if(num2 < 1)
        {
           system("cls");
           cout<< "\n\tO valor não pode ser manor do que 1.\n\n";
           system("pause");
        }
     }while(num2 < 1);
      if(num1 > num2) // verifica se o primeiro numero é maior que o segundo se for ele enverte os numeros.
      {
        swap = num1;
        num1 = num2;
        num2 = swap;
      }
      system("cls");
      x1 = num1;
      x2 = num2;
      resto = 1;
      while(resto != 0)
      {
        resto = x2 % x1;
        x2 = x1;
        x1 = resto;
      }
      if(x2 == 1)
      {
        cout<< "\n\n Os numeros "  << num1 << " e " << num2 << " sao primos entre si, pois MDC " << "(" << num1 << ", " << num2 << ") = " << x2 << "\n\n";
        system("pause");
      }
      else
      {
        cout<< "\n\n O resultado do MDC de (" << num1 << ", " << num2 << ") = " << x2 << "\n\n";
        system("pause");
      }
      system("cls");
      cout<< "\nGostaria de procurar um novo MDC? S = sim ou N = nao \n\t";
      cin>> resp;
  }while(resp == 's' || resp == 'S');
}
avatar
Renancr

Mensagens : 118
Data de inscrição : 08/03/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum