Os cálculos envolvendo MMC e MDC são relacionados com múltiplos e divisores de um número natural. Entendemos por Múltiplo, o produto gerado pela multiplicação entre dois números.
Observe os exemplos abaixo:
Dizemos que 30 é múltiplo de 5, pois 5 * 6 = 30. Existe um número natural que multiplicado por 5 resulta em 30. Veja mais alguns números e seus múltiplos:
M(3) = 0, 3, 6, 9, 12, 15, 18, 21, ...
M(4) = 0, 4, 8, 12, 16, 20, 24, 28, 32, ...
M(10) = 0, 10, 20, 30, 40, 50, 60, ...
M(8) = 0, 8, 16, 24, 32, 40, 48, 56, ...
M(20) = 0, 20, 40, 60, 80, 100, 120, ...
M(11) = 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, ...
Os múltiplos de um número formam um conjunto infinito de elementos.
Se quizer saber mais sobre o assunto acesse o seguinte link abaxo:
http://www.brasilescola.com/matematica/calculo-mmc-mdc.htm
Foi partindo destas lógicas que desenvolvi este ótimo exemplo de como mostrar o m.m.c e m.d.c entre dois números porém entre os 10 primeiros múltiplos dos mesmos.
Breve descrição do funcionamento do programa:
Dois números são coletados pela entrada de dados, onde dentro de dois blocos comandado por dois laço for se separam os 10 primeiros múltiplos destes dois números, e rapidamente são copiados dentro de dois vetores previamente declarados.
Aqui entra a lógica principal do programa, um outro vetor que também foi declarado recebe a cópia apenas dos números que são comuns nos dois primeiros vetores que foram carregados com os 10 primeiros múltiplos de cada número.
Agora basta identificar qual é o menor e o maior elemento contido neste vetor, que são respectivamente o m.m.c e m.d.c dos dois números.
Código dedicado a estudantes e admiradores desta importante linguagem de programação.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void Janela5(){
int lin, col;
col = 0;system("Color 10");
for ( lin = 2; lin <= 24; lin++ )
for ( col = 2; col <= 78; col++ ){
gotoxy(col,lin);textbackground(WHITE);printf(" ");
}
}
int continuando ( ){
int nr; do{system("cls");system("Color 90");Janela5();
textcolor(LIGHTRED);gotoxy(28,5);printf("M.M.C E M.D.C ENTRE DOIS NÚMEROS");
textcolor(BROWN);gotoxy(25,7);printf("Programa desenvolvido por:");
textcolor(GREEN);gotoxy(52,7);printf("Samuel Lima");
textcolor(BLACK);gotoxy(34,9);printf("sa_sp10@hotmail.com");
textcolor(LIGHTBLUE);gotoxy(23,11);printf ("Digite ");
textcolor(LIGHTRED);printf (" 0 ");
textcolor(LIGHTBLUE);printf (" para sair ou ");
textcolor(LIGHTRED);printf (" 1 ");
textcolor(LIGHTBLUE);printf (" para continuar ");
textcolor(LIGHTRED);gotoxy(24,13);
scanf ( "%d", &nr );fflush(stdin);
if( nr == 0 ){
textcolor(LIGHTRED);gotoxy(36,18);printf("MUITO OBRIGADO");
getche();exit(0);
}else if( nr == 1 ){
return 1;
}
textcolor(BLACK);gotoxy(36,16);printf ("\aopcão errada!");
getche();
}while ( 1 );
return 1;
}
int main(){
system ("title M.M.C E M.D.C ENTRE DOIS NÚMEROS");
int Vet [ 10 ], vet [ 10 ], ve_t [ 10 ];
int a = 0, b = 0, k = 0, h = 0, i = 0, j, l, mmc, mdc;
continuando ( );system("cls");system("Color 90");Janela5();
textcolor(LIGHTRED);gotoxy(26,3);printf("M.M.C E M.D.C ENTRE DOIS NÚMEROS");
textcolor(LIGHTBLUE);gotoxy(32,5);printf("Digite um número: ");
textcolor(LIGHTRED);scanf("%d", &j);
textcolor(LIGHTBLUE);gotoxy(32,7);printf("Digite outro número: ");
textcolor(LIGHTRED);scanf("%d", &l);
textcolor(LIGHTBLUE);gotoxy(10,9);printf("Os 10 primeiros múltiplos de ");
textcolor(LIGHTRED);printf("%d", j);
textcolor(LIGHTBLUE);printf(" ==> ");textcolor(BLACK);
for ( i = j; i < 10 * j; i++ ) {
if ( i % j == 0 ){
printf("%d ", i);
vet [ a ] = i;
a++;
}
}
textcolor(LIGHTBLUE);gotoxy(10,11);printf("Os 10 primeiros múltiplos de ");
textcolor(LIGHTRED);printf("%d", l);
textcolor(LIGHTBLUE);printf(" ==> ");textcolor(BLACK);
for ( i = l; i < 10 * l; i++ ) {
if ( i % l == 0 ){
printf("%d ", i);
ve_t [ b ] = i;
b++;
}
}
for ( i = 0; i < 10; i++ ){
for ( j = 0; j < 10; j++ ){
if ( vet [ i ] == ve_t [ j ] ){
Vet [ h ] = ve_t [ j ];
h++;
}
}
}textcolor(LIGHTRED);gotoxy(5,13);
printf("Abaixo o M.M.C e M.D.C entre os 10 primeiros múltiplos destes números");
mmc = Vet [ 0 ];
for (i = 1; i < k - 1; i++) {
if ( Vet [ i ] < mmc )
mmc = Vet [ i ];
}
mdc = Vet [ 0 ];
for (i = 1; i < h; i++) {
if ( Vet [ i ] > mdc )
mdc = Vet [ i ];
}
if( mmc == 0 ){
textcolor(LIGHTBLUE);gotoxy(10,15);
printf("Não há um M.M.C entre os 10 primeiros múltiplos destes números");
}
if( mmc > 0 ){
textcolor(LIGHTBLUE);gotoxy(20,15);printf("O M.M.C entre os dois números é ==> ");
textcolor(LIGHTRED);printf("%d ", mmc );
}
if( mdc == 0 ){
textcolor(LIGHTBLUE);gotoxy(10,17);
printf("Não há um M.D.C entre os 10 primeiros múltiplos destes números");
}
if( mdc > 0 ){
textcolor(LIGHTBLUE);gotoxy(20,17);printf("O M.D.C entre os dois números é ==> ");
textcolor(LIGHTRED);printf("%d ", mdc );
}Sleep(1800);
textcolor(LIGHTRED);gotoxy(36,23);printf("MUITO OBRIGADO");
getche();
}
Observe os exemplos abaixo:
Dizemos que 30 é múltiplo de 5, pois 5 * 6 = 30. Existe um número natural que multiplicado por 5 resulta em 30. Veja mais alguns números e seus múltiplos:
M(3) = 0, 3, 6, 9, 12, 15, 18, 21, ...
M(4) = 0, 4, 8, 12, 16, 20, 24, 28, 32, ...
M(10) = 0, 10, 20, 30, 40, 50, 60, ...
M(8) = 0, 8, 16, 24, 32, 40, 48, 56, ...
M(20) = 0, 20, 40, 60, 80, 100, 120, ...
M(11) = 0, 11, 22, 33, 44, 55, 66, 77, 88, 99, ...
Os múltiplos de um número formam um conjunto infinito de elementos.
Se quizer saber mais sobre o assunto acesse o seguinte link abaxo:
http://www.brasilescola.com/matematica/calculo-mmc-mdc.htm
Foi partindo destas lógicas que desenvolvi este ótimo exemplo de como mostrar o m.m.c e m.d.c entre dois números porém entre os 10 primeiros múltiplos dos mesmos.
Breve descrição do funcionamento do programa:
Dois números são coletados pela entrada de dados, onde dentro de dois blocos comandado por dois laço for se separam os 10 primeiros múltiplos destes dois números, e rapidamente são copiados dentro de dois vetores previamente declarados.
Aqui entra a lógica principal do programa, um outro vetor que também foi declarado recebe a cópia apenas dos números que são comuns nos dois primeiros vetores que foram carregados com os 10 primeiros múltiplos de cada número.
Agora basta identificar qual é o menor e o maior elemento contido neste vetor, que são respectivamente o m.m.c e m.d.c dos dois números.
Código dedicado a estudantes e admiradores desta importante linguagem de programação.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void Janela5(){
int lin, col;
col = 0;system("Color 10");
for ( lin = 2; lin <= 24; lin++ )
for ( col = 2; col <= 78; col++ ){
gotoxy(col,lin);textbackground(WHITE);printf(" ");
}
}
int continuando ( ){
int nr; do{system("cls");system("Color 90");Janela5();
textcolor(LIGHTRED);gotoxy(28,5);printf("M.M.C E M.D.C ENTRE DOIS NÚMEROS");
textcolor(BROWN);gotoxy(25,7);printf("Programa desenvolvido por:");
textcolor(GREEN);gotoxy(52,7);printf("Samuel Lima");
textcolor(BLACK);gotoxy(34,9);printf("sa_sp10@hotmail.com");
textcolor(LIGHTBLUE);gotoxy(23,11);printf ("Digite ");
textcolor(LIGHTRED);printf (" 0 ");
textcolor(LIGHTBLUE);printf (" para sair ou ");
textcolor(LIGHTRED);printf (" 1 ");
textcolor(LIGHTBLUE);printf (" para continuar ");
textcolor(LIGHTRED);gotoxy(24,13);
scanf ( "%d", &nr );fflush(stdin);
if( nr == 0 ){
textcolor(LIGHTRED);gotoxy(36,18);printf("MUITO OBRIGADO");
getche();exit(0);
}else if( nr == 1 ){
return 1;
}
textcolor(BLACK);gotoxy(36,16);printf ("\aopcão errada!");
getche();
}while ( 1 );
return 1;
}
int main(){
system ("title M.M.C E M.D.C ENTRE DOIS NÚMEROS");
int Vet [ 10 ], vet [ 10 ], ve_t [ 10 ];
int a = 0, b = 0, k = 0, h = 0, i = 0, j, l, mmc, mdc;
continuando ( );system("cls");system("Color 90");Janela5();
textcolor(LIGHTRED);gotoxy(26,3);printf("M.M.C E M.D.C ENTRE DOIS NÚMEROS");
textcolor(LIGHTBLUE);gotoxy(32,5);printf("Digite um número: ");
textcolor(LIGHTRED);scanf("%d", &j);
textcolor(LIGHTBLUE);gotoxy(32,7);printf("Digite outro número: ");
textcolor(LIGHTRED);scanf("%d", &l);
textcolor(LIGHTBLUE);gotoxy(10,9);printf("Os 10 primeiros múltiplos de ");
textcolor(LIGHTRED);printf("%d", j);
textcolor(LIGHTBLUE);printf(" ==> ");textcolor(BLACK);
for ( i = j; i < 10 * j; i++ ) {
if ( i % j == 0 ){
printf("%d ", i);
vet [ a ] = i;
a++;
}
}
textcolor(LIGHTBLUE);gotoxy(10,11);printf("Os 10 primeiros múltiplos de ");
textcolor(LIGHTRED);printf("%d", l);
textcolor(LIGHTBLUE);printf(" ==> ");textcolor(BLACK);
for ( i = l; i < 10 * l; i++ ) {
if ( i % l == 0 ){
printf("%d ", i);
ve_t [ b ] = i;
b++;
}
}
for ( i = 0; i < 10; i++ ){
for ( j = 0; j < 10; j++ ){
if ( vet [ i ] == ve_t [ j ] ){
Vet [ h ] = ve_t [ j ];
h++;
}
}
}textcolor(LIGHTRED);gotoxy(5,13);
printf("Abaixo o M.M.C e M.D.C entre os 10 primeiros múltiplos destes números");
mmc = Vet [ 0 ];
for (i = 1; i < k - 1; i++) {
if ( Vet [ i ] < mmc )
mmc = Vet [ i ];
}
mdc = Vet [ 0 ];
for (i = 1; i < h; i++) {
if ( Vet [ i ] > mdc )
mdc = Vet [ i ];
}
if( mmc == 0 ){
textcolor(LIGHTBLUE);gotoxy(10,15);
printf("Não há um M.M.C entre os 10 primeiros múltiplos destes números");
}
if( mmc > 0 ){
textcolor(LIGHTBLUE);gotoxy(20,15);printf("O M.M.C entre os dois números é ==> ");
textcolor(LIGHTRED);printf("%d ", mmc );
}
if( mdc == 0 ){
textcolor(LIGHTBLUE);gotoxy(10,17);
printf("Não há um M.D.C entre os 10 primeiros múltiplos destes números");
}
if( mdc > 0 ){
textcolor(LIGHTBLUE);gotoxy(20,17);printf("O M.D.C entre os dois números é ==> ");
textcolor(LIGHTRED);printf("%d ", mdc );
}Sleep(1800);
textcolor(LIGHTRED);gotoxy(36,23);printf("MUITO OBRIGADO");
getche();
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.