Created
November 18, 2011 22:40
-
-
Save tiagodavi/1378001 to your computer and use it in GitHub Desktop.
Função recursiva para calcular o MDC (máximo divisor comum)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
@author: Tiago Davi | |
@blog: tiagodavi.blogspot.com | |
//fonte : somatematica.com.br | |
CÁLCULO DO M.D.C. PELO PROCESSO DAS DIVISÕES SUCESSIVAS | |
Regra prática: | |
1º) dividimos o número maior pelo número menor; | |
48 / 30 = 1 (com resto 18) | |
2º) dividimos o divisor 30, que é divisor da divisão anterior, por 18, que é o resto da divisão anterior, e assim sucessivamente; | |
30 / 18 = 1 (com resto 12) | |
18 / 12 = 1 (com resto 6) | |
12 / 6 = 2 (com resto zero - divisão exata) | |
3º) O divisor da divisão exata é 6. | |
Logo m.d.c.(48,30) = 6. | |
*/ | |
//Função recursiva para calcular o MDC (máximo divisor comum) | |
function mdc($x,$y){ | |
$a = max($x,$y); | |
$b = min($x,$y); | |
if($a%$b == 0){ | |
return $b; | |
}else{ | |
return mdc($b,($a%$b)); | |
} | |
} | |
//Não importa a ordem | |
echo mdc(48,30); //6 | |
echo mdc(30,48); //6 | |
/* | |
CÁLCULO DO M.M.C EFICIENTE (mínimo múltiplo comum) | |
fonte:wikipedia | |
Regra prática: | |
mmc(x,y) = (($x*$y)/(mdc($x,$y))); | |
*/ | |
function mmc($x,$y){ | |
return (($x*$y)/(mdc($x,$y))); | |
} | |
echo mmc(4,6); //12 | |
echo mmc(4,15); //60 | |
echo mmc(12,30); //60 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment