Verificador de Mersenne
Escriba un exponente y obtenga el valor completo de 2^p − 1 junto con su veredicto de primalidad: 7 da 127, un primo de Mersenne, y 11 da 2047, que es 23 × 89. Admite exponentes de 2 a 10 000. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Potencia (W)
- 7
- Núm. Mersenne
- 127
- Dígitos decimales
- 3
Cuando el propio Mp es primo se llama primo de Mersenne: números que han impulsado búsquedas de récord durante siglos, desde las primeras listas de Marin Mersenne hasta los proyectos distribuidos modernos. No todo exponente produce un primo: si p es compuesto entonces Mp es compuesto, y aun para muchos exponentes primos el número de Mersenne se factoriza (por ejemplo 2^11 − 1 = 2047 = 23 × 89). Esta herramienta toma un exponente entero p al menos dos, devuelve el valor decimal completo de 2^p − 1 como cadena y decide si ese valor es primo con el test determinista de Lucas-Lehmer cuando p es un primo impar.
Qué son los números de Mersenne y cómo decide Lucas-Lehmer
Un número de Mersenne se define por un solo exponente: Mp es dos elevado a la potencia p, menos uno. Los primeros valores son constantes familiares de aula —M2 vale tres, M3 siete, M5 treinta y uno, M7 ciento veintisiete— mientras que exponentes mayores producen enteros con miles de dígitos decimales. Un primo de Mersenne es simplemente un número de Mersenne que es primo.
Una condición necesaria clásica es que el propio exponente p sea primo: si p se factoriza como ab con a y b mayores que uno, entonces 2^a − 1 divide a 2^{ab} − 1, de modo que Mp no puede ser primo. Esa condición necesaria no es suficiente. Para p igual a once, que es primo, M11 vale dos mil cuarenta y siete y se factoriza como veintitrés por ochenta y nueve.
El test de Lucas-Lehmer resuelve la cuestión por completo para exponentes primos impares. Comience con s cero igual a cuatro; en cada uno de los siguientes p menos dos pasos reemplace s por s al cuadrado menos dos, reducido módulo Mp. El número de Mersenne es primo si y solo si el residuo final es cero.
Para el caso especial p igual a dos el número tres es primo por inspección y no necesita la secuencia iterativa. Esta capacidad implementa ese pipeline exacto con aritmética BigInt: nunca aproxima, nunca llama a un servicio de primalidad y nunca depende del reloj de pared ni de bits aleatorios. Siempre obtiene el mismo booleano para el mismo p.
Dónde aparecen las comprobaciones de Mersenne en el trabajo real
Los programadores de concursos y los entrenadores de olimpiadas usan pequeñas comprobaciones de Mersenne como calentamiento antes de problemas más duros de aritmética modular, y necesitan un oráculo determinista del que los alumnos no puedan divergir accidentalmente de una fórmula de hoja de cálculo. Los ingenieros de criptografía y sistemas a veces validan demos didácticas o tablas históricas de primos de Mersenne conocidos sin reclamar fuerza criptográfica a partir de una sola secuencia modular.
Si más adelante necesita pares gemelos, π(n) o factorización de un compuesto general, trátelos como intenciones de búsqueda separadas en lugar de sobrecargar esta página centrada en Mersenne. Los números de Mersenne siguen siendo la página correcta cuando la pregunta es cuánto vale 2^p − 1 y si Lucas-Lehmer (o la regla del exponente compuesto) lo certifica como primo de Mersenne.
Preguntas frecuentes
¿Qué es un número de Mersenne?
Cuando ese número es primo se llama primo de Mersenne.
¿p menor que 2 provoca un error?
El verificador solo acepta exponentes de 2 a 10,000 inclusive.
¿Cómo funciona Lucas-Lehmer aquí?
Mp es primo si y solo si el residuo final es cero. Los exponentes compuestos omiten el bucle y se reportan como compuestos.
¿El resultado es determinista?
No hay azar, llamada de red ni modelo: solo aritmética modular BigInt y división de prueba del exponente.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
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/mersenne-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":7}'const res = await fetch("https://api.kit.forhosting.com/numth/mersenne-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/mersenne-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/mersenne-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/mersenne-number", 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
{
"p": 7
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.mersenne_number",
"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
min_p | 2 |
max_p | 10000 |
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
Un número de Mersenne es un entero de la forma especial Mp = 2^p − 1, donde p es un exponente entero positivo.
Contrato de entrada, respuestas exitosas y modos de fallo
Decimales, campos vacíos y cadenas no numéricas fallan la validación y no se cobran. Envíe un campo entero obligatorio p (se aceptan los alias exponent y power). El valor debe ser al menos dos —los exponentes menores que dos se rechazan con invalid_input para que los formularios muestren un error de cota claro— y como máximo diez mil para que el cuadrado modular quepa en los presupuestos de Worker y navegador. En éxito el JSON informa p, la cadena decimal completa mersenne para dos a la p menos uno, decimal_digits como el recuento de dígitos de esa cadena, p_is_prime para el exponente, is_mersenne_prime para Mp, y method que describe qué ruta se ejecutó: special_case_p2 para el tres clásico, composite_exponent cuando p es compuesto (entonces Mp se sabe compuesto sin iterar Lucas-Lehmer), o lucas_lehmer cuando p es un primo impar. Comprobaciones puntuales en las que puede confiar sin abrir un libro: p igual a siete produce mersenne ciento veintisiete e is_mersenne_prime true; p igual a once produce dos mil cuarenta y siete y false; p igual a cuatro produce mersenne quince con composite_exponent y false; p igual a uno falla la validación. El precio de la API es la base publicada de $0.002 por ítem exitoso; la validación fallida no consume saldo.
Dónde aparecen las comprobaciones de Mersenne en el trabajo real
Como la capacidad es un motor de parse puro, el mismo p siempre produce el mismo JSON sin dependencia de red ni estado almacenado. Use el ejecutor gratuito del navegador para tareas y exploración, y luego llame a la API desde scripts e integración continua cuando necesite comprobaciones masivas con saldo prepago.
Casos de integración
Tareas y calentamientos de olimpiada
Calcule Mp = 2^p − 1 para exponentes de aula y verifique cuáles son primos de Mersenne con una clave de respuesta determinista de Lucas-Lehmer.
Fixtures deterministas para demos de teoría de números
Genere campos estables mersenne e is_mersenne_prime para diapositivas, tests unitarios y documentación sin mantener a mano grandes cadenas decimales.
Comprobaciones de Mersenne aptas para pipelines
Llame al mismo contrato isomorfo desde scripts y CI para que las aserciones de primalidad de Mersenne no dependan de un formulario web casual ni de un modelo de lenguaje.