Verificador de Mersenne
Digite um expoente e receba o valor completo de 2^p − 1 com o veredito de primalidade: 7 dá 127, um primo de Mersenne, e 11 dá 2047, que é 23 × 89. Aceita expoentes de 2 a 10.000. 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
- Potência (W)
- 7
- Núm. Mersenne
- 127
- Dígitos decimais
- 3
Quando o próprio Mp é primo, chama-se primo de Mersenne — números que impulsionaram buscas de recorde por séculos, desde as primeiras listas de Marin Mersenne até os projetos distribuídos modernos. Nem todo expoente produz um primo: se p é composto então Mp é composto, e mesmo para muitos expoentes primos o número de Mersenne se fatore (por exemplo 2^11 − 1 = 2047 = 23 × 89). Esta ferramenta recebe um expoente inteiro p pelo menos dois, retorna o valor decimal completo de 2^p − 1 como string e decide se esse valor é primo com o teste determinístico de Lucas-Lehmer quando p é um primo ímpar.
O que são números de Mersenne e como Lucas-Lehmer decide
Um número de Mersenne é definido por um único expoente: Mp é dois elevado à potência p, menos um. Os primeiros valores são constantes familiares de sala — M2 vale três, M3 sete, M5 trinta e um, M7 cento e vinte e sete — enquanto expoentes maiores produzem inteiros com milhares de dígitos decimais. Um primo de Mersenne é simplesmente um número de Mersenne que é primo.
Uma condição necessária clássica é que o próprio expoente p seja primo: se p se fatore como ab com a e b maiores que um, então 2^a − 1 divide 2^{ab} − 1, de modo que Mp não pode ser primo. Essa condição necessária não é suficiente. Para p igual a onze, que é primo, M11 vale dois mil e quarenta e sete e se fatore como vinte e três vezes oitenta e nove.
O teste de Lucas-Lehmer resolve a questão completamente para expoentes primos ímpares. Comece com s zero igual a quatro; em cada um dos próximos p menos dois passos substitua s por s ao quadrado menos dois, reduzido módulo Mp. O número de Mersenne é primo se e somente se o resíduo final for zero.
Para o caso especial p igual a dois o número três é primo por inspeção e não precisa da sequência iterativa. Esta capacidade implementa esse pipeline exato com aritmética BigInt: nunca aproxima, nunca chama um serviço de primalidade e nunca depende do relógio de parede ou de bits aleatórios. Você sempre obtém o mesmo booleano para o mesmo p.
Onde checagens de Mersenne aparecem no trabalho real
Programadores de competição e treinadores de olimpíada usam pequenas checagens de Mersenne como aquecimento antes de problemas mais duros de aritmética modular, e precisam de um oráculo determinístico do qual os alunos não possam divergir acidentalmente de uma fórmula de planilha. Engenheiros de criptografia e sistemas às vezes validam demos didáticas ou tabelas históricas de primos de Mersenne conhecidos sem reivindicar força criptográfica a partir de uma única sequência modular.
Se mais tarde precisar de pares gêmeos, π(n) ou fatoração de um composto geral, trate-os como intenções de busca separadas em vez de sobrecarregar esta página focada em Mersenne. Números de Mersenne continuam sendo a página certa quando a pergunta é quanto vale 2^p − 1 e se Lucas-Lehmer (ou a regra do expoente composto) o certifica como primo de Mersenne.
Perguntas frequentes
O que é um número de Mersenne?
Quando esse número é primo, chama-se primo de Mersenne.
p abaixo de 2 causa erro?
O verificador só aceita expoentes de 2 a 10,000 inclusive.
Como Lucas-Lehmer funciona aqui?
Mp é primo se e somente se o resíduo final for zero. Expoentes compostos pulam o laço e são reportados compostos.
O resultado é determinístico?
Não há aleatoriedade, chamada de rede nem modelo — apenas aritmética modular BigInt e divisão de tentativa do expoente.
Quanto custa?
A ferramenta do navegador é grátis e roda localmente.
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/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)Exemplo de requisição
{
"p": 7
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.mersenne_number",
"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
min_p | 2 |
max_p | 10000 |
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
Um número de Mersenne é um inteiro da forma especial Mp = 2^p − 1, onde p é um expoente inteiro positivo.
Contrato de entrada, respostas bem-sucedidas e modos de falha
Decimais, campos vazios e strings não numéricas falham na validação e não são cobrados. Envie um campo inteiro obrigatório p (aliases exponent e power são aceitos). O valor deve ser pelo menos dois — expoentes abaixo de dois são rejeitados com invalid_input para que formulários mostrem um erro de limite claro — e no máximo dez mil para que o quadrado modular caiba nos orçamentos de Worker e navegador. Em sucesso o JSON informa p, a string decimal completa mersenne para dois à p menos um, decimal_digits como a contagem de dígitos dessa string, p_is_prime para o expoente, is_mersenne_prime para Mp, e method descrevendo qual caminho rodou: special_case_p2 para o três clássico, composite_exponent quando p é composto (Mp é então conhecido composto sem iterar Lucas-Lehmer), ou lucas_lehmer quando p é um primo ímpar. Checagens pontuais em que você pode confiar sem abrir um livro: p igual a sete produz mersenne cento e vinte e sete e is_mersenne_prime true; p igual a onze produz dois mil e quarenta e sete e false; p igual a quatro produz mersenne quinze com composite_exponent e false; p igual a um falha na validação. O preço da API é a base publicada de US$ 0,002 por item bem-sucedido; validação falha não consome saldo.
Onde checagens de Mersenne aparecem no trabalho real
Como a capacidade é um motor de parse puro, o mesmo p sempre produz o mesmo JSON sem dependência de rede e sem estado armazenado. Use o executor gratuito do navegador para tarefas e exploração, depois chame a API de scripts e integração contínua quando precisar de checagens em massa com saldo pré-pago.
Casos de integração
Tarefas e aquecimentos de olimpíada
Calcule Mp = 2^p − 1 para expoentes de sala e verifique quais valores são primos de Mersenne com uma chave de resposta determinística de Lucas-Lehmer.
Fixtures determinísticos para demos de teoria dos números
Gere campos estáveis mersenne e is_mersenne_prime para slides, testes unitários e documentação sem manter à mão grandes strings decimais.
Checagens de Mersenne amigáveis a pipelines
Chame o mesmo contrato isomorfo de scripts e CI para que asserções de primalidade de Mersenne nunca dependam de um formulário web casual ou de um modelo de linguagem.