Fórmula de Legendre: expoente de um primo em n!
O primo 5 aparece 24 vezes no fatorial de 100: 100 dividido por 5 dá 20, 20 dividido por 5 dá 4, e 20 mais 4 somam 24. Digite qualquer n e um primo p para obter esse expoente com poucas divisões. 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
- N
- 100
- Potência (W)
- 5
- Expoente
- 24
Esta calculadora da fórmula de Legendre retorna o expoente exato de um primo p escolhido no fatorial de n. Em vez de construir o enorme inteiro n!, ela divide n repetidamente por p e soma os quocientes inteiros. Ela ajuda em questões de divisibilidade, zeros finais, coeficientes binomiais, aulas de teoria dos números e competições de programação. Cada entrada é validada como inteiro limitado, e a primalidade de p é verificada separadamente antes do cálculo; assim, uma base composta produz um erro claro, e não uma resposta enganosa.
O que a fórmula de Legendre mede
A fórmula de Legendre conta quantas cópias de um primo p aparecem no produto 1 × 2 × 3 × … × n. Cada múltiplo de p fornece pelo menos uma cópia, cada múltiplo de p² fornece outra e cada múltiplo de p³ acrescenta mais uma. Portanto, o expoente é floor(n/p) + floor(n/p²) + floor(n/p³) + termos seguintes, encerrando quando o quociente chega a zero.
A calculadora retorna esse expoente diretamente, sem expandir o fatorial. Essa diferença é importante porque os fatoriais crescem rapidamente, enquanto o número de divisões aumenta apenas de forma logarítmica. A resposta repete n e p ao lado do expoente para deixar resultados armazenados sem ambiguidade.
Como as entradas são validadas e calculadas
Envie dois campos obrigatórios: n, um inteiro não negativo, e p, um inteiro primo de pelo menos 2. Por conveniência, o núcleo aceita textos numéricos formados somente por algarismos decimais, mas rejeita frações, valores negativos, textos vazios, infinitos e números acima do limite publicado. O serviço também confirma que p é realmente primo.
Depois da validação, a implementação começa com quotient = n, substitui o quociente por floor(quotient/p), soma o novo valor ao expoente e repete até chegar a zero. Essa forma baseada em quocientes equivale matematicamente ao uso de potências sucessivas de p, mas evita multiplicações que poderiam estourar o limite numérico.
Como usar o expoente em problemas maiores
O expoente retornado é um componente compacto para vários fluxos de teoria dos números. Para encontrar o expoente de p em um coeficiente binomial C(n, k), calcule o expoente em n! e subtraia os expoentes em k!
e (n-k)!. Para verificar se p^a divide n!, compare a com a resposta: a divisibilidade ocorre exatamente quando a não é maior que o expoente retornado. Os zeros finais são outra aplicação conhecida. Na base dez, eles surgem de pares de 2 e 5; como fatoriais contêm mais fatores 2 do que 5, o expoente de 5 em n!
fornece a quantidade de zeros decimais finais. O mesmo raciocínio atende bases de potência prima. Esta capacidade responde intencionalmente a uma consulta precisa sobre um primo, em vez de retornar toda a fatoração de n!, mantendo a resposta pequena quando você já conhece o primo desejado.
Ela serve para aulas, correção automática, competições e validações de backend. Para vários primos, faça uma chamada para cada um.
Casos de uso
Verificar a maior potência prima que divide um fatorial
Encontre o maior expoente a para o qual p^a divide n! sem calcular o próprio fatorial.
Avaliar valorações binomiais
Combine três expoentes fatoriais para calcular exatamente o expoente de p em um coeficiente binomial.
Perguntas frequentes
O que o expoente significa?
É o maior inteiro a para o qual p^a divide n! sem deixar resto.
Por que p precisa ser primo?
Esta forma da fórmula de Legendre calcula a valoração de um único primo. Valores compostos são rejeitados para evitar classificar incorretamente outro cálculo.
A calculadora constrói o fatorial de n?
Não. Ela soma quocientes inteiros sucessivos de n por potências de p e evita o enorme valor do fatorial.
O que acontece quando p é maior que n?
O resultado é zero, pois nenhum fator de 1 até n é divisível por p.
Quantos zeros finais tem o fatorial de 100?
Tem 24. Cada zero final precisa de um 2 e de um 5, e os fatoriais têm mais fatores 2 do que 5, então a contagem é o expoente de 5, que a fórmula de Legendre dá como 24 para 100.
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/numth/legendre-formula \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100,"p":5}'const res = await fetch("https://api.kit.forhosting.com/numth/legendre-formula", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100,
"p": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/legendre-formula",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100,
"p": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/legendre-formula", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100,"p":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100,"p":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/legendre-formula", 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
{
"n": 100,
"p": 5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.legendre_formula",
"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_n | 1000000000 |
max_p | 1000000000 |
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
O resultado é a valoração p-ádica de n!, normalmente escrita como v_p(n!).
O que a fórmula de Legendre mede
Para n = 100 e p = 5, os termos são 20, 4 e 0; logo, o expoente é 24. Isso significa que 5²⁴ divide 100!, mas 5²⁵ não divide. A definição inclui n = 0 e n = 1: ambos os fatoriais valem 1, então o expoente de qualquer primo é zero.
Como as entradas são validadas e calculadas
Por exemplo, p = 7 funciona, enquanto p = 9 retorna invalid_input, pois a fórmula para um único primo não deve ser apresentada como valoração de uma base composta. O algoritmo é determinístico, não usa rede nem aleatoriedade e produz o mesmo inteiro no navegador e na API. Uma solicitação de API bem-sucedida custa US$ 0,002; entradas inválidas retornam erros claros.
Casos de integração
Calcular zeros finais de um fatorial
Use p = 5 para obter os zeros decimais finais de n! ou aplique o resultado a outras bases de potência prima.
Perguntas técnicas
Quanto custa um cálculo pela API?
Cada solicitação de API bem-sucedida custa US$ 0,002. A calculadora do navegador usa o mesmo núcleo determinístico.