calcular o MDC e MMC de dois números inteiro maior que 2 e menor que 1000000 Seguir Ler os dois números inteiros. Criticar a validade dos números que devem satisfazer o intervalo proposto Se não satisfizer o intervalo exibir mensagem Erro de Dados. Se satisfizer, exibir mensagem MDC = resposta; MMC = resposta em linguagem c++
Soluções para a tarefa
Respondido por
0
Primeiro, vamos lembrar que o MMC entre dois números é igual ao produto dos dois números dividido pelo MDC.
Portanto, se calcularmos o MDC entre dois números, facilmente calculamos o MMC.
O MDC pode ser calculado pelo algoritmo de subtração sucessiva do maior pelo menor. Quando a última iteração der 0, o MDC será o resultado da etapa anterior. Se a última iteração de 1, os números são primos entre si.
Por exemplo, qual o MDC entre 12 e 16 ?
subtraimos o menor do maior
16-12 = 4
Pegamos os 2 menores 12 e 4 e subtraimos de novo
12-4 = 8
pegamos os 2 menores 8 e 4
8-4 = 4
e então os 2 menores agora são iguais, este é o MDC
Agora imagine o MDC entre 63 e 18 ...
63 - 18 = 45
45 - 18 = 27
27 - 18 = 9
18 - 9 = 9
O MDC é 9
Agora imagine 42 e 11
42-11 = 31
31-11 = 20
20-11 = 9
11-9 = 2
9-2=7
7-2=5
5-2=3
3-2=1
Opa, esses números são primos entre si
Podemos inclusive usar recursividade aí, que fica bem interessante
Bom, agora vamos implementar o algoritmo em c++
#include <iostream>
#include <string>
using namespace std;
int obtemvalor( string mensagem) {
int aux;
do {
cout << mensagem << "\n";
cin >> aux ;
} while ( aux <=2 || aux > 1000000 );
return (aux);
};
int mdc( int valor1 , int valor2 ){
int aux;
int pequeno;
int grande;
if (valor1 > valor2){
pequeno = valor2;
grande = valor1;
}
else {
pequeno = valor1;
grande = valor2;
};
if (pequeno ==0 ){
aux = grande;
}
else{
aux = mdc( pequeno, grande-pequeno);
};
return (aux);
}
int main(){
int um_numero;
int outro_numero;
int resultado;
int mmc;
um_numero = obtemvalor("Informe o primeiro número" );
outro_numero = obtemvalor("Informe o segundo número");
resultado = mdc(um_numero,outro_numero);
mmc = um_numero * outro_numero / resultado;
cout << "Números informados : " << um_numero << " e " << outro_numero << "\n";
cout << "MDC = " << resultado << "\n";
cout << "MMC = " << mmc << "\n";
}
Pode ver e rodar o programa aqui
https://repl.it/@bokomoko/MDC-e-MMC
Portanto, se calcularmos o MDC entre dois números, facilmente calculamos o MMC.
O MDC pode ser calculado pelo algoritmo de subtração sucessiva do maior pelo menor. Quando a última iteração der 0, o MDC será o resultado da etapa anterior. Se a última iteração de 1, os números são primos entre si.
Por exemplo, qual o MDC entre 12 e 16 ?
subtraimos o menor do maior
16-12 = 4
Pegamos os 2 menores 12 e 4 e subtraimos de novo
12-4 = 8
pegamos os 2 menores 8 e 4
8-4 = 4
e então os 2 menores agora são iguais, este é o MDC
Agora imagine o MDC entre 63 e 18 ...
63 - 18 = 45
45 - 18 = 27
27 - 18 = 9
18 - 9 = 9
O MDC é 9
Agora imagine 42 e 11
42-11 = 31
31-11 = 20
20-11 = 9
11-9 = 2
9-2=7
7-2=5
5-2=3
3-2=1
Opa, esses números são primos entre si
Podemos inclusive usar recursividade aí, que fica bem interessante
Bom, agora vamos implementar o algoritmo em c++
#include <iostream>
#include <string>
using namespace std;
int obtemvalor( string mensagem) {
int aux;
do {
cout << mensagem << "\n";
cin >> aux ;
} while ( aux <=2 || aux > 1000000 );
return (aux);
};
int mdc( int valor1 , int valor2 ){
int aux;
int pequeno;
int grande;
if (valor1 > valor2){
pequeno = valor2;
grande = valor1;
}
else {
pequeno = valor1;
grande = valor2;
};
if (pequeno ==0 ){
aux = grande;
}
else{
aux = mdc( pequeno, grande-pequeno);
};
return (aux);
}
int main(){
int um_numero;
int outro_numero;
int resultado;
int mmc;
um_numero = obtemvalor("Informe o primeiro número" );
outro_numero = obtemvalor("Informe o segundo número");
resultado = mdc(um_numero,outro_numero);
mmc = um_numero * outro_numero / resultado;
cout << "Números informados : " << um_numero << " e " << outro_numero << "\n";
cout << "MDC = " << resultado << "\n";
cout << "MMC = " << mmc << "\n";
}
Pode ver e rodar o programa aqui
https://repl.it/@bokomoko/MDC-e-MMC
Perguntas interessantes
Administração,
9 meses atrás
Português,
9 meses atrás
Matemática,
9 meses atrás
Matemática,
1 ano atrás
Biologia,
1 ano atrás
Biologia,
1 ano atrás
História,
1 ano atrás