-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexercise6.js
40 lines (35 loc) · 1.06 KB
/
exercise6.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
Crear una función “MCD”, que calcule el máximo común divisor de dos números utilizando el algoritmo de Euclides.
Este algoritmo indica que dado dos números enteros positivos, que los llamaremos “m” y “n”, que uno sea mayor que otro (m>n).
Para encontrar su MCD (el mayor número positivo que los divide a los dos) hay que:
- Obtener el resto (“r”) de la división entre “m” y “n”.
- Si r=0 entonces el MCD es “n”
- Si no el MCD es el MCD(n,r), es decir, es el máximo común divisor de “n” y “r”
Pistas:
- Para calcular el resto de una división existe el operador módulo que es %. EJ: 3%2=1.
- Se puede/debe hacer sin recursividad.
**/
function mcd(a, b){
var r,m,n=NaN, finished=false;
if(typeof a === 'number' && typeof b === 'number' && a>=0 && b>=0){
if(a>b){
m=a;
n=b
}else{
m=b;
n=a;
}
finished = n===0;
while(!finished){
r=m%n;
if(r===0 || isNaN(r)){
finished=true;
}else{
m=n;
n=r;
}
}
}
return n;
}
module.exports.mcd = mcd;