ForHosting KIT · Ferramentas para dev

Teste de primalidade de Proth com testemunha

O teste de primalidade de Proth verifica um número escrito como k × 2^n + 1 aplicando o teorema de Proth à testemunha fornecida por você.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Primeiro, confirma que k é positivo e ímpar, n é positivo e k é menor que 2^n. Depois, calcula exatamente a potência modular necessária. Uma congruência válida prova que o número de Proth é primo; uma testemunha que falha gera resultado inconclusivo, exceto quando revela um fator.

Informe um número de Proth legítimo e uma testemunha

Um número de Proth tem a forma exata N = k × 2^n + 1, na qual k é um inteiro positivo ímpar, n é um inteiro positivo e k é estritamente menor que 2^n. Todas essas condições são essenciais. A calculadora recebe k e a testemunha como texto decimal para preservar valores grandes, sem arredondamento de ponto flutuante. Informe n como inteiro entre 1 e 10,000. A ferramenta constrói N em vez de pedir esse valor separadamente, evitando divergências entre o número declarado e os parâmetros que o definem. Ela também verifica se a testemunha está estritamente entre 1 e N. Entradas com k par, valor não positivo ou k maior ou igual a 2^n são rejeitadas por não serem de Proth, em vez de serem submetidas a um teorema cujas hipóteses não se aplicam. O número, o expoente, a testemunha e o resíduo são devolvidos como strings decimais quando necessário, permitindo que você audite o cálculo e copie os valores para outra ferramenta de aritmética exata.

Entenda o que a congruência realmente prova

Para um número de Proth válido N, o teorema afirma que N é primo se existir um inteiro a para o qual a^((N−1)/2) seja congruente a −1 módulo N. A testemunha fornecida corresponde a a, e a calculadora avalia a potência modular por quadrados sucessivos, sem construir primeiro a gigantesca potência comum. Na saída, `residue` é o menor resíduo não negativo, e `passes_test` é true exatamente quando ele equivale a N−1, a representação modular de −1. Nesse caso, `prime_proven` é true e o veredito é `prime`: trata-se de um certificado determinístico sob as condições de Proth já validadas, e não de um palpite de primo provável. A resposta inclui o expoente exato (N−1)/2 para que você reproduza a congruência de forma independente. O algoritmo usa somente operações inteiras, não seleciona testemunhas aleatoriamente e não consulta tabelas nem serviços remotos. Assim, a mesma entrada sempre produz o mesmo resultado e expõe todos os valores importantes empregados no teorema.

Interprete corretamente uma testemunha que falha

Uma testemunha que não produz −1 não prova, por si só, que o número é composto. Ela apenas indica que essa testemunha específica não satisfez a condição suficiente do teorema de Proth. Por isso, a calculadora retorna `inconclusive`, e não `composite`, quando o resíduo é diferente e a testemunha é coprima com N. Você pode então tentar outra testemunha escolhida matematicamente ou usar um método determinístico de primalidade diferente. Há uma exceção útil: antes de interpretar a congruência, a calculadora determina o máximo divisor comum entre a testemunha e N. Se esse valor for um fator próprio, o resultado será conclusivamente `composite`, e o fator será apresentado. Essa distinção evita o erro comum de transformar um teorema de sentido único em um teste bidirecional inválido. Ela também ajuda em fluxos automatizados: aceite `prime` como prova, rejeite `composite` quando surgir um fator e encaminhe `inconclusive` para outro teste, sem tratá-lo silenciosamente como uma falha definitiva.

Verificar um candidato de uma busca

Teste um par k e n gerado com uma testemunha escolhida antes de registrar o candidato como primo comprovado.

Ensinar o teorema de Proth

Apresente o expoente exato, o resíduo modular e a diferença entre uma prova e uma testemunha inconclusiva.

Adicionar uma verificação determinística

Valide as condições de Proth e encaminhe resultados primos, compostos e inconclusivos sem aritmética de ponto flutuante.

Quanto custa uma solicitação API?

Cada solicitação API custa US$ 0,002. O cálculo também pode ser executado gratuitamente no navegador.

O que torna uma entrada um número de Proth?

Ela deve ser igual a k × 2^n + 1, com k positivo e ímpar, n positivo e k < 2^n.

Uma testemunha que falha prova que o número é composto?

Não. Normalmente, o resultado é inconclusivo. A composição só é declarada quando a testemunha revela um fator comum não trivial.

Por que k e a testemunha são informados como strings?

Strings decimais preservam inteiros maiores que o intervalo numérico seguro do JavaScript sem arredondamento.

Um resultado positivo é probabilístico?

Não. Depois que as condições de Proth são validadas, a congruência exigida constitui uma prova de primalidade.

As testemunhas são selecionadas automaticamente?

Não. Você fornece a testemunha, e a capacidade testa deterministicamente esse valor exato.

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/proth-test

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/proth-test \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"k":"3","n":3,"witness":"3"}'
{
  "k": "3",
  "n": 3,
  "witness": "3"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.proth_test",
  "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.

max_n10000
max_decimal_digits3011
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.

Ver a documentação completa do KIT →