22.10.2014 Views

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!