Massimo Comun Divisore (MCD)
Il massimo comun divisore di 1071 e 462 è 21, ottenuto in tre passaggi del metodo di Euclide, senza scomporre nessuno dei due numeri. Inserisca due interi, anche negativi o con uno zero, e usi il risultato per ridurre 462/1071 a 22/51. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- A
- 1071
- B
- 462
- Gcd
- 21
I segni vengono ignorati, un singolo zero segue la regola gcd(n, 0) = |n|, e l'unico caso rifiutato è il matematicamente indefinito gcd(0, 0).
Che cos'è davvero il massimo comun divisore
Il massimo comun divisore di due interi è il più grande numero intero positivo che li divide entrambi esattamente. Per 1071 e 462 è 21, perché 1071 = 21 × 51 e 462 = 21 × 22, e nessun intero più grande li divide entrambi. Quando il risultato è 1, i due numeri si dicono coprimi: non condividono alcun fattore.
Il concetto è antico — è al centro degli Elementi di Euclide — ed è ancora il modo più rapido per rispondere a domande molto pratiche: ridurre una frazione ai minimi termini, verificare se due processi periodici si allineeranno mai, oppure semplificare un rapporto prima di mostrarlo. Non approssima mai e non arrotonda mai: intero in ingresso, intero esatto in uscita.
Come l'algoritmo di Euclide lo calcola
L'implementazione è la versione euclidea senza sottrazioni: si sostituisce ripetutamente il numero maggiore con il resto della divisione del maggiore per il minore, finché il resto è zero; l'ultimo resto diverso da zero è la risposta. Per 1071 e 462: 1071 mod 462 = 147, poi 462 mod 147 = 21, poi 147 mod 21 = 0, quindi il risultato è 21.
Il ciclo richiede O(log min(a, b)) iterazioni, il che significa che anche numeri vicini al limite degli interi sicuri terminano in pochi passaggi, senza fattorizzazione e senza virgola mobile. I segni vengono rimossi all'inizio perché la divisibilità non dipende da essi, quindi gcd(-12, 18) è 6.
Dove si colloca nel lavoro reale
La riduzione delle frazioni è l'uso canonico: divida numeratore e denominatore per il loro gcd e la frazione è ai minimi termini, ciò di cui motori di fatturazione, ridimensionatori di ricette e visualizzazioni di rapporti hanno bisogno prima di presentare un numero. È anche alla base dei controlli di coprimalità — un gcd pari a 1 è il test — e del meccanismo del resto cinese e dell'inverso modulare usato in crittografia, dove il gcd è il primo passo dell'algoritmo di Euclide esteso.
La capability gira sul nostro edge senza memorizzare nulla: i due interi arrivano, il divisore esce, e nessuna traccia dei Suoi numeri viene conservata.
Casi d'uso
Ridurre le frazioni ai minimi termini
Divida numeratore e denominatore per il loro gcd prima di salvare o mostrare un rapporto, così 462/1071 diventa 22/51.
Verificare se due numeri sono coprimi
Un risultato di 1 significa che la coppia non condivide alcun fattore, precondizione di molte costruzioni di scheduling, hashing e crittografia.
Allineare processi periodici
Insieme all'mcm, il gcd Le dice quando due cicli di lunghezza diversa coincidono e come suddividere il lavoro in lotti uguali.
Domande frequenti
Quanto costa?
È anche gratis nel Suo browser in questa pagina, con esattamente lo stesso codice.
Gli input possono essere negativi?
Sì. I segni vengono ignorati perché la divisibilità non dipende da essi: gcd(-12, 18) restituisce 6, sempre come intero positivo.
Cosa succede con lo zero?
gcd(n, 0) restituisce |n| per ogni n diverso da zero.
Quanto grandi possono essere gli interi?
Qualunque intero sicuro in termini JavaScript, fino a 2^53 − 1 in valore assoluto. I valori oltre questo intervallo vengono rifiutati invece di essere calcolati in modo impreciso.
Quale algoritmo viene usato?
L'algoritmo di Euclide: passaggi di resto ripetuti finché il resto è zero. Richiede O(log min(a, b)) iterazioni, senza fattorizzazione e senza virgola mobile.
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/math/gcd \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1071,"b":462}'const res = await fetch("https://api.kit.forhosting.com/math/gcd", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1071,
"b": 462
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/gcd",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1071,
"b": 462
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/gcd", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1071,"b":462}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1071,"b":462}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/gcd", 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
{
"a": 1071,
"b": 462
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.gcd",
"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.
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
L'API del massimo comun divisore accetta due interi e restituisce il più grande intero positivo che li divide entrambi senza resto, calcolato con il classico algoritmo di Euclide. È uno strumento piccolo ed esatto: lo stesso codice deterministico gira gratis nel Suo browser e dietro l'endpoint a pagamento, quindi il numero che vede in prova è quello che la Sua pipeline otterrà in produzione.
Che cos'è davvero il massimo comun divisore
Questo endpoint accetta i due interi nei campi a e b, con qualunque segno, e restituisce un oggetto con il divisore positivo.
Come l'algoritmo di Euclide lo calcola
I casi limite seguono la convenzione standard: gcd(n, 0) = |n| per ogni n diverso da zero, mentre gcd(0, 0) è indefinito e viene rifiutato con un errore invalid_input invece di uno zero silenzioso e sbagliato.
Dove si colloca nel lavoro reale
Può provarlo gratis in questa pagina con lo stesso codice che serve l'API, e paga $0.002 a richiesta solo quando lo chiama dai Suoi sistemi, il che lo rende abbastanza economico da inserire in una fase di pulizia dati che elabora milioni di coppie.