Calculadora de MDC
O máximo divisor comum de 48 e 18 é 6: é o maior número presente nas duas listas de divisores. Digite dois inteiros, com sinal ou com um zero, e receba a resposta exata para simplificar frações, dividir em caixas iguais ou escolher pisos. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- A
- 48
- B
- 18
- Gcf
- 6
O máximo divisor comum de dois números inteiros é o maior inteiro que divide ambos exatamente, e ele aparece o tempo todo: ao reduzir frações, ao dividir quantidades em grupos iguais, ao dimensionar os ladrilhos de um piso ou ao simplificar proporções no código. Esta capacidade o calcula com o algoritmo de Euclides, o mesmo método que os matemáticos usam há mais de dois mil anos, e retorna um único inteiro. Envie dois inteiros —positivos, negativos ou zero, como números ou como strings numéricas exatas— e receba o máximo divisor comum deles.
O que o máximo divisor comum realmente é
Pegue dois inteiros, digamos 48 e 18. Os números que dividem 48 exatamente são 1, 2, 3, 4, 6, 8, 12, 16, 24 e 48; os divisores de 18 são 1, 2, 3, 6, 9 e 18. Os divisores que eles compartilham são 1, 2, 3 e 6, e o maior deles —6— é o máximo divisor comum, escrito mdc(48, 18) = 6.
Listar divisores funciona para números pequenos, mas escala muito mal: fatorar um inteiro de quinze dígitos é realmente difícil. A calculadora de máximo divisor comum evita a fatoração por completo. Ela usa o algoritmo de Euclides, que se apoia em uma observação: qualquer divisor comum de a e b também divide o resto da divisão do maior pelo menor.
Substituir o número maior por esse resto encolhe o problema a cada passo preservando todos os divisores comuns, até que um dos números chegue a zero e o outro seja a resposta. Todo o cálculo leva no máximo algumas dezenas de passos mesmo para os maiores inteiros que o JavaScript representa com exatidão, e o resultado é sempre exato — sem ponto flutuante, sem aproximação.
Entradas, sinais, zero e erros
Os sinais não importam: mdc(-48, 18) é igual a mdc(48, 18), porque um divisor de um número também divide o seu oposto, então o algoritmo trabalha com os valores absolutos. Zero é uma entrada legítima com um significado preciso — mdc(17, 0) é 17, pois todo inteiro divide zero e o maior divisor de 17 é o próprio 17 — mas os dois campos zerados são rejeitados, porque todo inteiro divide zero e não existe um maior.
Os valores absolutos são limitados a 9007199254740991, o maior inteiro que o JavaScript representa com exatidão; qualquer coisa maior não poderia ser tratada com exatidão e é recusada.
Onde ela se encaixa e quanto custa
Você encontra o máximo divisor comum com mais frequência do que o nome sugere. Reduzir uma fração aos termos mais baixos é dividir numerador e denominador pelo MDC deles. Dividir uma remessa em caixas idênticas sem sobrar nada, escolher o maior ladrilho quadrado que cobre um piso retangular sem cortes e simplificar uma proporção de aspecto em um layout responsivo são a mesma pergunta com roupas diferentes.
No código, ele aparece dentro de agendadores, funções hash e rotinas criptográficas. Esta capacidade é deliberadamente mínima: ela retorna o próprio fator, nada mais, de modo que se combina de forma limpa com qualquer coisa que o consuma. Se você precisar dos passos completos de divisão do algoritmo de Euclides, dos coeficientes de Bézout ou também do mínimo múltiplo comum, capacidades irmãs cobrem isso.
Ela roda na nossa edge global sem guardar nada depois da resposta, e o mesmo módulo alimenta a calculadora gratuita desta página, então você pode verificar qualquer resultado à mão antes de ligá-lo a um pipeline.
Casos de uso
Reduzir uma fração aos termos mais baixos
Divida numerador e denominador pelo máximo divisor comum deles para simplificar 48/18 a 8/3 em uma única chamada.
Dividir quantidades em grupos iguais
Encontre o maior tamanho de lote idêntico que divide exatamente duas quantidades de estoque, sem sobrar nada.
Simplificar proporções em um motor de layout
Converta dimensões em pixels como 1920x1080 para a proporção 16:9 que elas representam antes de armazenar ou exibir.
Perguntas frequentes
Quanto custa?
Também é grátis rodar no seu navegador nesta página.
Os sinais dos números importam?
Não. O máximo divisor comum é calculado sobre os valores absolutos, então mdc(-48, 18) e mdc(48, 18) são ambos 6.
Um dos números pode ser zero?
Sim: mdc(a, 0) é |a|. Os dois sendo zero é rejeitado, porque mdc(0,0) é indefinido.
Quão grandes podem ser os inteiros?
Até 9007199254740991 em valor absoluto, o maior inteiro que pode ser representado com exatidão. Valores maiores são recusados em vez de calculados de forma aproximada.
Algo é armazenado depois da chamada?
Não. Os dois inteiros são processados e descartados; apenas o máximo divisor comum é retornado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/math/gcf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":48,"b":18}'const res = await fetch("https://api.kit.forhosting.com/math/gcf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 48,
"b": 18
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/gcf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 48,
"b": 18
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/gcf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":48,"b":18}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":48,"b":18}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/gcf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"a": 48,
"b": 18
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.gcf",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_abs | 9007199254740991 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Entradas que não sejam inteiras são rejeitadas com um erro claro, e o mesmo código que responde à API roda de graça no seu navegador nesta página.
Entradas, sinais, zero e erros
O endpoint aceita dois campos obrigatórios, a e b. Cada um deve ser um inteiro: um número JSON como 1071 ou uma string numérica como "-252" que represente um inteiro exato — as strings são convenientes quando o valor vem de um formulário ou de um arquivo de texto. Decimais como 2.5, frações, booleanos e texto não numérico são rejeitados com um erro invalid_input que indica o campo culpado, porque o máximo divisor comum só é definido para inteiros.
Onde ela se encaixa e quanto custa
O preço é US$ 0,002 por requisição, sem sobretaxa por unidade, e requisições idênticas sempre produzem respostas idênticas.
Perguntas técnicas
Quais entradas são aceitas?
Dois inteiros, a e b, como números JSON ou como strings numéricas que sejam inteiros exatos. Qualquer outra coisa é rejeitada com um erro invalid_input.