ForHosting KIT · Matemática

Verificador de primos de Mersenne com Lucas-Lehmer

Informe um expoente primo e o teste de Lucas–Lehmer diz se 2^p − 1 é primo: com 31 são 29 passos, o resíduo final é 0 e o primo 2147483647 é confirmado. Você vê o número exato, não apenas um sim ou não. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Potência (W)
31
Você obtém
Número de Mersenne
2147483647
Iterações
29
Resíduo final
0

Este verificador recebe um expoente primo p e determina se 2^p - 1 é primo. Ele usa Lucas-Lehmer, o teste determinístico próprio para números de Mersenne, e retorna o número exato, a quantidade de iterações e o resíduo final. Primeiro, o expoente é validado, pois um expoente composto não pode produzir um primo de Mersenne. Essa regra separa uma solicitação inválida de um teste válido que conclui que o número é composto.

Escolha e valide o expoente

Informe um expoente inteiro p entre 2 e 10,000. Antes de construir o número, ele confirma por divisão experimental determinística que p é primo. Essa é uma condição matemática, e não apenas uma otimização: se p for composto, 2^p - 1 terá uma fatoração algébrica.

Portanto, esse caso gera erro de entrada, não um resultado falso. Assim, falso significa que um expoente primo foi testado corretamente, enquanto um erro informa que a solicitação não pertence ao domínio de Lucas-Lehmer. Decimais, campos ausentes, listas, textos não numéricos e valores fora do limite também são rejeitados.

Entenda o cálculo de Lucas-Lehmer

São feitas exatamente p - 2 atualizações. O teorema de Lucas-Lehmer afirma que M é primo se, e somente se, o resíduo final for zero. Não há arredondamento, testemunhas probabilísticas, serviços de rede ou semente aleatória.

A resposta mostra o Mersenne decimal exato, a decisão, o método, as iterações e o resíduo final para que você possa reproduzir e auditar o cálculo.

Verificar um expoente candidato

Confirme se o número de Mersenne de um expoente primo satisfaz exatamente o critério de Lucas-Lehmer.

Ensinar recorrência modular

Demonstre como quadraturas modulares repetidas chegam a um resíduo zero ou diferente de zero.

Criar dados de teste determinísticos

Gere valores, contagens de iteração e resíduos estáveis para validar outra implementação.

O que acontece se p for composto?

A solicitação retorna erro de entrada inválida porque p precisa ser primo.

Um expoente primo garante um primo de Mersenne?

Não. Ele é necessário, mas não suficiente; o resíduo de Lucas-Lehmer fornece a decisão final.

O teste é probabilístico?

Não. Lucas-Lehmer é determinístico para números de Mersenne com expoentes primos.

2^31 − 1 é um primo de Mersenne?

Sim. Com o expoente 31, o verificador forma 2147483647, executa 29 passos de Lucas–Lehmer e termina com resíduo 0, o que prova que o número é primo.

O que significa um resultado falso?

Significa que um expoente primo foi testado corretamente e que o número de Mersenne dele é composto. É um resultado normal, diferente de um erro, que só aparece quando o expoente não é um primo válido dentro da faixa.

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.

POSThttps://api.kit.forhosting.com/numth/mersenne-prime-check

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/numth/mersenne-prime-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"p":31}'
{
  "p": 31
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.mersenne_prime_check",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

min_p2
max_p10000
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Escolha e valide o expoente

O verificador aceita o campo p e o alias exponent, inclusive como texto inteiro em clientes orientados a texto.

Entenda o cálculo de Lucas-Lehmer

Depois de validar p, o sistema forma M = 2^p - 1 com aritmética BigInt exata. Para um primo ímpar, começa com s = 4 e substitui repetidamente s por seu quadrado menos 2, reduzido módulo M. O caso p = 2 corresponde a M = 3, não exige passos e retorna resíduo zero.

Interprete e aplique o resultado

Verdadeiro indica resíduo final zero; falso indica que p era primo, mas 2^p - 1 era composto. Ela não é um serviço de busca ilimitada: avalia um expoente por solicitação e impõe um teto. Como o resultado não muda, use cache em sistemas de alto volume. Leia is_prime como a decisão sobre o número de Mersenne, e não sobre o expoente, que já foi validado. Isso é comum, pois um expoente primo é necessário, porém não suficiente. mersenne e final_residue são textos decimais para evitar perda de precisão em JSON. O navegador executa a mesma lógica determinística da API, e cada chamada automatizada custa US$ 0,002.

Por que o número e o resíduo são textos?

Eles podem exceder o intervalo inteiro exato de JSON; textos decimais preservam todos os dígitos.

Quanto custa uma verificação pela API?

Cada solicitação custa US$ 0,002. A versão no navegador usa o mesmo cálculo puro.

Ver a documentação completa do KIT →