Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
x y a b Resto Mdc<br />
68 148 68 148 68<br />
148 68 12<br />
68 12 8<br />
12 8 4<br />
8 4 0<br />
4<br />
9. Um outro algoritmo mat<strong>em</strong>ático cuja impl<strong>em</strong>entação numa linguag<strong>em</strong> de programação apresenta<br />
um bom ex<strong>em</strong>plo do uso de estruturas de repetição é o algoritmo para a determinação do mínimo múltiplo<br />
comum (mmc) de dois números dados. Como indica a própria denominação, o mínimo múltiplo comum de<br />
dois números é o menor número que é divisível pelos dois números. A mat<strong>em</strong>ática prova que o mmc de dois<br />
números é o produto dos divisores primos dos dois números, comuns ou não, ambos com as suas<br />
multiplicidades. Para se obter os divisores primos, realiza-se divisões sucessivas pelos primos que são<br />
divisores de pelo menos um dos números.<br />
A tabela seguinte mostra o cálculo do mínimo múltiplo comum dos números 360 e 420, como nos é<br />
ensinado no ensino fundamental.<br />
360, 4202<br />
180, 2102<br />
90, 1052<br />
45, 1053<br />
15, 353<br />
5, 355<br />
1, 77<br />
1, 1MMC = 2*2*2*3*3*5*7 = 2 520<br />
Observe que, quando um divisor primo é encontrado, repete-se a divisão, com o quociente no lugar do<br />
dividendo até se obter um número que não é múltiplo daquele divisor. Aí, incr<strong>em</strong>enta-se o tal divisor. Isto é<br />
feito até que ambos os quocientes sejam iguais a 1. T<strong>em</strong>os o seguinte programa.<br />
/*Programa para determinar o minimo multiplo comum de dois numeros positivos*/<br />
#include <br />
main()<br />
{<br />
int x, y, d, a, b, i, Mmc;<br />
printf("Digite os dois numeros \n");<br />
scanf("%d %d", &x, &y);<br />
a = x;<br />
b = y;<br />
Mmc = 1;<br />
i = 2;<br />
while ((a != 1) || (b != 1))<br />
{<br />
while ((a % i == 0) || (b % i == 0))<br />
{<br />
if (a % i == 0)<br />
a = a/i;<br />
if (b % i == 0)<br />
b = b/i;<br />
Mmc = Mmc * i;<br />
}<br />
i = i + 1;<br />
}<br />
printf("mmc(%d, %d) = %d \n", x, y, Mmc);<br />
}<br />
10. A questão do mínimo múltiplo comum é muito interessante como ex<strong>em</strong>plo para a aprendizag<strong>em</strong> de<br />
programação pelo fato de que pod<strong>em</strong>os apresentar um outro algoritmo de compreensão b<strong>em</strong> mais simples