Calculadora de MCD y MCM
Escriba 12 y 18 y obtenga un MCD de 6 y un mcm de 36, o introduzca hasta 20 números de una vez. Práctico para simplificar fracciones, buscar denominadores comunes y hacer coincidir ciclos que se repiten. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Números
- 12, 18
- Máximo común divisor
- 6
- Mínimo común múltiplo
- 36
Calcula el máximo común divisor y el mínimo común múltiplo de un array de 2 a 20 enteros, devolviendo las entradas normalizadas junto al gcd y el lcm.
Cómo se calculan el MCD y el MCM
El máximo común divisor de dos valores procede del algoritmo de Euclides —reemplazar repetidamente (a, b) por (b, a mod b) hasta que b sea cero— y el gcd de todo el array es esa operación aplicada de izquierda a derecha a cada elemento. El mínimo común múltiplo de un par se calcula como abs((a / g) * b), donde g es su gcd, dividiendo antes de multiplicar para mantener pequeño el valor intermedio, y el lcm del array se pliega igualmente sobre todos los elementos.
Si algún elemento es cero, el lcm es cero, y un array de todos ceros se rechaza porque gcd(0,0) no está definido. La respuesta devuelve numbers (las entradas normalizadas), gcd y lcm, de modo que el ejemplo [12, 18] da un gcd de 6 y un lcm de 36.
Normalización, límites y enteros seguros
Cada elemento se coacciona primero con Math.trunc y Math.abs, de modo que los signos y las partes fraccionarias se descartan: -12.9 se convierte en 12 antes de ejecutar cualquier cálculo, y los valores normalizados son los que aparecen en el array numbers devuelto. El array debe contener entre 2 y 20 elementos, cada elemento debe ser un número finito y ningún valor absoluto puede superar 1e15.
Aritmética determinista que puede reutilizar
El MCD y el MCM sustentan tareas cotidianas: reducir fracciones a su mínima expresión, hallar un denominador común, alinear ciclos que se repiten o dimensiones de teselado y simplificar razones. Pasar más de dos números está plenamente admitido —el plegado maneja hasta 20 en una sola llamada—, de modo que puede reducir un conjunto entero de una vez en lugar de encadenar solicitudes por pares.
Qué puede hacer con ella
Reducción de fracciones y razones
Reduzca fracciones o razones a su mínima expresión dividiendo el numerador y el denominador por su gcd.
Alineación de calendarios
Averigüe cuándo coinciden ciclos que se repiten tomando el lcm de sus periodos a lo largo de hasta 20 valores.
Preguntas frecuentes
¿Qué ocurre con los negativos y los decimales?
Cada valor se trunca y se hace absoluto (Math.trunc y luego Math.abs), de modo que -12.9 se convierte en 12 antes de cualquier cálculo.
¿Cuántos números puedo introducir a la vez?
Entre 2 y 20. El MCD y el mcm se calculan sobre toda la lista de una sola pasada, así que puede reducir un conjunto completo en lugar de encadenar parejas a mano.
¿Qué pasa si uno de los números es cero?
El mínimo común múltiplo pasa a ser cero, porque el cero es múltiplo de cualquier número. Una lista formada solo por ceros se rechaza, ya que su máximo común divisor no está definido.
¿Cómo uso el mcm para saber cuándo coinciden dos calendarios?
Escriba la duración de cada ciclo que se repite, por ejemplo en días. El mínimo común múltiplo es el primer punto en que todos vuelven a coincidir, y sirve para hasta 20 ciclos a la vez.
¿Cómo simplifico una fracción con el MCD?
Escriba el numerador y el denominador y divida ambos entre el MCD que obtenga. El resultado es la misma fracción en su mínima expresión, y lo mismo vale para simplificar una proporción.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/gcd-lcm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers":[12,18]}'const res = await fetch("https://api.kit.forhosting.com/dev/gcd-lcm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numbers": [
12,
18
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/gcd-lcm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numbers": [
12,
18
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/gcd-lcm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numbers":[12,18]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numbers":[12,18]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/gcd-lcm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"numbers": [
12,
18
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gcd_lcm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 20 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo se calculan el MCD y el MCM
dev.gcd_lcm toma un array numbers y lo pliega por pares.
Normalización, límites y enteros seguros
Como el MCM crece rápido, el resultado se comprueba frente a Number.MAX_SAFE_INTEGER y un lcm calculado más allá de ese rango devuelve un error invalid_input tipado en lugar de un flotante silenciosamente incorrecto. Cualquier infracción —un valor que no sea array, demasiados o muy pocos elementos, una entrada no finita, una magnitud fuera de rango o un conjunto de todos ceros— lanza invalid_input con un mensaje que nombra el problema, antes o durante el plegado, de modo que quien llama obtiene un fallo limpio y capturable.
Casos de integración
Teoría de números por lotes
Llame a la API sobre muchos conjuntos de enteros para añadir columnas de gcd y lcm sin una biblioteca matemática local.
Preguntas técnicas
¿Cuántos números puedo pasar?
Entre 2 y 20 enteros por llamada; el gcd y el lcm se pliegan por pares a lo largo de todo el array.
¿Hay límites de tamaño?
Ningún elemento puede superar 1e15 en magnitud, y un MCM más allá de MAX_SAFE_INTEGER devuelve invalid_input en lugar de un flotante incorrecto.
¿Y si paso todos ceros?
Se rechaza: gcd(0,0) no está definido, de modo que un array de todos ceros devuelve un error invalid_input tipado.
¿Es determinista y gratuito?
Sí. El mismo array siempre produce el mismo resultado; el widget del navegador es gratuito y la API factura solo las tareas correctas a $0.002.