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
1
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
Em C ???
assim ?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int obtemvalor( char mensagem[]) {
int aux;
do {
printf("%s \n", mensagem );
scanf("%i", &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 ){
return(grande);
} else{
return( 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;
printf("Números informados : %i e %i \n", um_numero, outro_numero);
printf("MDC = %i \n",resultado);
printf("MMC = %i \n", mmc);
}
rode o programa aqui -> https://repl.it/@bokomoko/mdc-e-mmc-simplificado
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
Em C ???
assim ?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int obtemvalor( char mensagem[]) {
int aux;
do {
printf("%s \n", mensagem );
scanf("%i", &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 ){
return(grande);
} else{
return( 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;
printf("Números informados : %i e %i \n", um_numero, outro_numero);
printf("MDC = %i \n",resultado);
printf("MMC = %i \n", mmc);
}
rode o programa aqui -> https://repl.it/@bokomoko/mdc-e-mmc-simplificado
meloadrielle:
compilou direitinho,fiz uns ajuste pq ficou um pouco grande e a professora pediu o mais simples possivel mas me ajudou bastante,obg
Perguntas interessantes
Geografia,
9 meses atrás
Matemática,
9 meses atrás
Artes,
9 meses atrás
Física,
1 ano atrás
Biologia,
1 ano atrás
Artes,
1 ano atrás
Matemática,
1 ano atrás