Aquí aparecerá el valor de d.
Aquí aparecerá el valor de d/a.
Aquí aparecerá el valor de d/b.
Explicación matemática del cálculo de d:
El máximo común divisor (mcd) de dos números a y b es el primer número d tal que el resto de a/d es cero y lo mismo ocurre con el resto de b/d, es decir, la distancia de d a un divisor de a es cero, tolerancia cero (c = 0), y lo mismo con la distantia de d a un múltiplo de b.
Con tolerancia c, el mcd(a, b) se define como el primer número (en orden decreciente desde el min(a, b)) d tal que d no diste más de c/2 de un divisor de a, y lo mismo con b.
Cálculo del valor de d en el script:
// Encontrar el primer número d tal que d <= a, d <= b, y las condiciones de los módulos se cumplen
let d = Math.min(a, b); // d debe ser menor o igual que a y b, comenzamos con el menor
while (true) {
const conditionA = Math.min(a % d, d - (a % d)); // Calcula la distancia mínima al valor 0 del módulo d
const conditionB = Math.min(b % d, d - (b % d)); // Calcula la distancia mínima al valor 0 del módulo d
if (conditionA <= c / 2 && conditionB <= c / 2) { // Si ambas distancias cumplen la tolerancia c/2
break; // Se encontró el valor de d que cumple las condiciones
}
d--; // Incrementar d para continuar la búsqueda
}
Podíamos llamar a este número d máximo común divisor de a y b con tolerancia c, mcdt(a,b;c)