Calcolatore MCD MCM
Inserisca 12 e 18 e ottenga un MCD di 6 e un mcm di 36, oppure fino a 20 numeri in una sola volta. Utile per semplificare frazioni, trovare denominatori comuni e far coincidere cicli che si ripetono. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Numeri
- 12, 18
- Massimo comune divisore
- 6
- Minimo comune multiplo
- 36
Calcola il massimo comun divisore e il minimo comune multiplo di un array da 2 a 20 interi, restituendo gli input normalizzati accanto al MCD e al MCM.
Come vengono calcolati il MCD e il MCM
Il massimo comun divisore di due valori deriva dall'algoritmo di Euclide — sostituendo ripetutamente (a, b) con (b, a mod b) finché b è zero — e il MCD dell'intero array è quell'operazione applicata da sinistra a destra su ogni elemento. Il minimo comune multiplo di una coppia si calcola come abs((a / g) * b) dove g è il loro MCD, dividendo prima di moltiplicare per mantenere piccolo il valore intermedio, e il MCM dell'array viene analogamente ridotto su tutti gli elementi.
Se un elemento è zero il MCM è zero, e un array di soli zeri viene respinto perché gcd(0,0) è indefinito. La risposta restituisce numbers (gli input normalizzati), gcd e lcm, così che l'esempio [12, 18] produca un MCD di 6 e un MCM di 36.
Normalizzazione, limiti e interi sicuri
Ogni elemento viene prima convertito con Math.trunc e Math.abs, quindi i segni e le parti frazionarie vengono scartati: -12.9 diventa 12 prima di qualsiasi calcolo, e i valori normalizzati sono quelli che compaiono nell'array numbers restituito. L'array deve contenere tra 2 e 20 elementi, ogni elemento deve essere un numero finito, e nessun valore assoluto può superare 1e15.
Aritmetica deterministica riutilizzabile
MCD e MCM sono alla base di attività quotidiane: ridurre le frazioni ai minimi termini, trovare un denominatore comune, allineare programmi ricorrenti o dimensioni di piastrellatura e semplificare i rapporti. Passare più di due numeri è pienamente supportato — la riduzione ne gestisce fino a 20 in una sola chiamata — così può ridurre un intero insieme in una volta anziché concatenare richieste a coppie.
Casi d'uso
Riduzione di frazioni e rapporti
Riduca frazioni o rapporti ai minimi termini dividendo numeratore e denominatore per il loro MCD.
Allineamento di programmi
Trovi quando cicli ricorrenti coincidono prendendo il MCM dei loro periodi su un massimo di 20 valori.
Domande frequenti
Cosa succede a negativi e decimali?
Ogni valore viene troncato e reso assoluto (Math.trunc poi Math.abs), quindi -12.9 diventa 12 prima di qualsiasi calcolo.
Quanti numeri posso inserire insieme?
Da 2 a 20. MCD e mcm vengono calcolati sull'intero elenco in un solo passaggio, così può ridurre un insieme completo invece di procedere a coppie a mano.
Cosa succede se uno dei numeri è zero?
Il minimo comune multiplo diventa zero, perché lo zero è multiplo di qualsiasi numero. Un elenco fatto solo di zeri viene rifiutato, dato che il loro massimo comune divisore non è definito.
Come uso il mcm per sapere quando due cicli coincidono?
Inserisca la durata di ogni ciclo che si ripete, per esempio in giorni. Il minimo comune multiplo è il primo punto in cui tutti tornano a coincidere, e funziona fino a 20 cicli insieme.
Come semplifico una frazione con il MCD?
Inserisca numeratore e denominatore e divida entrambi per il MCD ottenuto. Il risultato è la stessa frazione ridotta ai minimi termini, e lo stesso vale per semplificare un rapporto.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"numbers": [
12,
18
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gcd_lcm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_items | 20 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come vengono calcolati il MCD e il MCM
dev.gcd_lcm prende un array numbers e lo riduce a coppie.
Normalizzazione, limiti e interi sicuri
Poiché il MCM cresce in fretta, il risultato viene confrontato con Number.MAX_SAFE_INTEGER e un lcm calcolato oltre quell'intervallo restituisce un errore tipizzato invalid_input anziché un float silenziosamente errato. Qualsiasi violazione — un non-array, troppo pochi o troppi elementi, una voce non finita, una grandezza fuori intervallo o un insieme di soli zeri — solleva invalid_input con un messaggio che nomina il problema, prima o durante la riduzione, così che i chiamanti ottengano un errore pulito e intercettabile.
Casi di integrazione
Teoria dei numeri in blocco
Richiami l'API su molti insiemi di interi per aggiungere le colonne MCD e MCM senza una libreria matematica locale.
Domande tecniche
Quanti numeri posso passare?
Tra 2 e 20 interi per chiamata; il MCD e il MCM vengono ridotti a coppie sull'intero array.
Ci sono limiti di dimensione?
Nessun elemento può superare 1e15 in valore assoluto, e un MCM oltre MAX_SAFE_INTEGER restituisce invalid_input anziché un float errato.
E se passo tutti zeri?
Viene respinto: gcd(0,0) è indefinito, quindi un array di soli zeri restituisce un errore tipizzato invalid_input.
È deterministico e gratuito?
Sì. Lo stesso array produce sempre lo stesso risultato; il widget del browser è gratuito e l'API fattura solo le attività riuscite a $0.002.