Fórmula de Legendre: exponente de un primo en n!
El primo 5 aparece 24 veces en el factorial de 100: 100 entre 5 da 20, 20 entre 5 da 4, y 20 más 4 suman 24. Escriba cualquier n y un primo p para obtener ese exponente con unas pocas divisiones. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- N
- 100
- Potencia (W)
- 5
- Exponente
- 24
Esta calculadora de la fórmula de Legendre devuelve el exponente exacto de un primo p elegido en el factorial de n. En vez de construir el enorme entero n!, divide repetidamente n entre p y suma los cocientes enteros. Sirve para estudiar divisibilidad, ceros finales, coeficientes binomiales, teoría de números y concursos de programación. Cada entrada se valida como entero acotado y la primalidad de p se comprueba por separado, por lo que una base compuesta genera un error claro y no una respuesta engañosa.
Qué mide la fórmula de Legendre
La fórmula de Legendre cuenta cuántas copias de un primo p aparecen en el producto 1 × 2 × 3 × … × n. Cada múltiplo de p aporta al menos una; cada múltiplo de p² aporta otra, y cada múltiplo de p³, una más. Por eso el exponente es floor(n/p) + floor(n/p²) + floor(n/p³) + sucesivos términos, hasta que el cociente vale cero.
La calculadora devuelve directamente ese valor sin desarrollar el factorial. La ventaja es importante: los factoriales crecen muy deprisa, mientras que la cantidad de divisiones solo aumenta de forma logarítmica. La respuesta repite n y p junto al resultado para que los datos guardados sean inequívocos.
Cómo se validan y calculan las entradas
Envíe dos campos obligatorios: n, un entero no negativo, y p, un entero primo de al menos 2. El núcleo admite por comodidad cadenas numéricas formadas solo por dígitos decimales, pero rechaza fracciones, valores negativos, cadenas vacías, infinitos y cifras superiores al límite publicado. El servicio también verifica que p sea realmente primo.
Tras validar, la implementación comienza con quotient = n, lo sustituye por floor(quotient/p), suma el nuevo valor al exponente y repite hasta llegar a cero. Esta versión por cocientes equivale matemáticamente al cálculo con potencias sucesivas de p, pero evita multiplicaciones que podrían desbordarse.
Cómo usar el exponente en problemas mayores
El exponente obtenido es una pieza compacta para muchos cálculos de teoría de números. Para hallar el exponente de p en un coeficiente binomial C(n, k), calcule el de n! y reste los correspondientes a k!
y (n-k)!. Para comprobar si p^a divide n!, compare a con la respuesta: la divisibilidad se cumple exactamente cuando a no supera el exponente devuelto. Los ceros finales son otra aplicación habitual. En base diez proceden de parejas de 2 y 5; como los factoriales contienen más factores 2 que 5, el exponente de 5 en n!
indica la cantidad de ceros decimales finales. Un razonamiento parecido funciona en bases que son potencias de primos. Esta capacidad responde deliberadamente a una consulta sobre un solo primo, en lugar de devolver toda la factorización de n!, y mantiene pequeña la respuesta cuando usted ya conoce el primo de interés.
Puede emplearla en clases, correctores automáticos, concursos y reglas de validación. Para varios primos, ejecútela una vez por cada uno.
Qué puede hacer con ella
Comprobar la mayor potencia prima que divide un factorial
Halle el mayor exponente a para el que p^a divide n! sin calcular el propio factorial.
Evaluar valoraciones binomiales
Combine tres exponentes factoriales para calcular exactamente el exponente de p en un coeficiente binomial.
Preguntas frecuentes
¿Qué significa el exponente?
Es el mayor entero a tal que p^a divide n! sin dejar resto.
¿Por qué p debe ser primo?
Esta forma de la fórmula de Legendre calcula la valoración para un solo primo. Los valores compuestos se rechazan para no etiquetar incorrectamente otro cálculo.
¿La calculadora construye el factorial de n?
No. Suma cocientes enteros sucesivos de n entre potencias de p y evita así el enorme valor del factorial.
¿Qué ocurre si p es mayor que n?
El resultado es cero, porque ningún factor entre 1 y n es divisible por p.
¿Cuántos ceros finales tiene el factorial de 100?
Tiene 24. Cada cero final necesita un 2 y un 5, y los factoriales contienen más doses que cincos, así que la cuenta coincide con el exponente de 5, que la fórmula de Legendre da como 24 para 100.
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/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)Ejemplo de solicitud
{
"n": 100,
"p": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.legendre_formula",
"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_n | 1000000000 |
max_p | 1000000000 |
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
El resultado es la valoración p-ádica de n!, escrita habitualmente como v_p(n!).
Qué mide la fórmula de Legendre
Para n = 100 y p = 5, los términos son 20, 4 y 0, así que el exponente es 24. Esto significa que 5²⁴ divide 100!, pero 5²⁵ no. La definición incluye n = 0 y n = 1; ambos factoriales valen 1 y, por tanto, el exponente de cualquier primo es cero.
Cómo se validan y calculan las entradas
Por ejemplo, p = 7 es válido, mientras que p = 9 devuelve invalid_input, porque la fórmula para un único primo no debe presentarse como valoración de una base compuesta. El algoritmo es determinista, no usa red ni azar y produce el mismo entero en el navegador y en la API. Cada solicitud API correcta cuesta $0.002; las entradas inválidas devuelven un error claro.
Casos de integración
Calcular los ceros finales de un factorial
Use p = 5 para obtener los ceros decimales finales de n! o aplique el resultado a otras bases de potencia prima.
Preguntas técnicas
¿Cuánto cuesta un cálculo mediante la API?
Cada solicitud API correcta cuesta $0.002. La calculadora del navegador utiliza el mismo núcleo determinista.