ForHosting KIT · Matemática

Teste Miller–Rabin determinístico

97 é primo: passa pelas sete bases fixas, 2, 3, 5, 7, 11, 13 e 23, que decidem com certeza todo inteiro até 9007199254740991. Se o número for composto, você também vê a primeira base que o denunciou. 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
N
97
Você obtém
Limite
9.007.199.254.740.991
Quantidade de testemunhas
7

O teste de Miller–Rabin determinístico decide se um inteiro n é primo executando o teste de testemunha de primo provavelmente forte contra uma lista curta e fixa de bases que resolvem todo inteiro abaixo de um limite de garantia publicado. Diferente de uma execução probabilística de Miller–Rabin que sorteia testemunhas e só estima o erro, esta capacidade usa sempre as mesmas bases, devolve sempre o mesmo veredito para o mesmo n e recusa entrada acima do limite em que essas bases deixam de ser comprovadamente suficientes. Você envia um único número inteiro no mínimo dois e no máximo o limite, e recebe um indicador de primalidade, a lista de testemunhas, o próprio limite e—quando o número é composto—a primeira testemunha que o provou.

Como funciona o teste de primo provavelmente forte com bases fixas

Miller–Rabin reescreve um candidato ímpar n como n menos um igual a d vezes dois elevado a s com d ímpar; em seguida, para cada testemunha a, calcula a elevado a d módulo n. Se essa potência for um ou n menos um, a testemunha passa. Caso contrário o algoritmo eleva o valor ao quadrado até s menos uma vezes e aceita a testemunha só se algum quadrado intermediário for n menos um; qualquer outro caminho prova que n é composto para essa base.

Um número que passa em todas as testemunhas chama-se primo provavelmente forte em relação a essas bases. Para conjuntos fixos bem escolhidos, resultados de teoria dos números mostram que não há composto abaixo de um limiar conhecido que engane todas as bases do conjunto—assim o desfecho de primo provavelmente forte vira primo verdadeiro dentro do limite.

Esta capacidade usa as sete bases dois, três, cinco, sete, onze, treze e vinte e três, suficientes para todo inteiro de sessenta e quatro bits e portanto para todo inteiro seguro de JavaScript até nove quatrilhões. Os primos minúsculos dois e três resolvem-se como primos. Quando uma testemunha divide n e é menor que n, essa testemunha é informada como base falha porque n é um múltiplo óbvio.

Quando um teste de primos com bases fixas ajuda

Cursos de criptografia e treinadores de CTF usam um teste de Miller–Rabin determinístico para mostrar aos alunos a diferença entre checagens probabilísticas com testemunhas aleatórias e certificados de bases fixas que nomeiam o limite de garantia na resposta. Autores de bibliotecas fixam testes unitários contra primos conhecidos, pseudoprimos fortes e compostos para que um refactor da exponenciação modular não inverta um veredito em silêncio.

Desenvolvedores de aplicações validam valores de configuração com forma de primo, sementes de quebra-cabeça ou parâmetros toy de Diffie–Hellman antes de um pipeline mais longo, capturando pares e compostos pequenos sem montar um sistema de álgebra computacional.

Prefira esta ferramenta quando a intenção de busca for especificamente o algoritmo de Miller–Rabin determinístico com testemunhas fixas e um limite rígido—não quando precisar do menor divisor de um composto, da fatoração prima completa, de Lucas–Lehmer para números de Mersenne ou de testes probabilísticos com uma lista de testemunhas personalizada que você mesmo forneça.

Ensinar certificados Miller–Rabin de bases fixas

Mostre aos alunos um veredito primo ou composto junto com a lista exata de testemunhas e o limite de garantia, para que a diferença em relação a testes probabilísticos com testemunhas aleatórias fique concreta.

Fixar testes unitários de primalidade modular

Afirme primos de ouro, compostos e rejeições fora do limite contra um oráculo estável de Miller–Rabin determinístico antes de publicar uma mudança em biblioteca criptográfica ou de teoria dos números.

Validar parâmetros com forma de primo sob um limite

Rejeite valores de configuração, sementes de quebra-cabeça ou módulos criptográficos de brinquedo que falhem no Miller–Rabin de bases fixas, e registre a testemunha falha na trilha de auditoria.

Quanto custa o teste de Miller–Rabin determinístico?

A mesma checagem também roda grátis no seu navegador nesta página; entrada inválida não é cobrada.

Quais números são aceitos?

Inteiros completos de 2 até o limite de garantia publicado 9007199254740991.

Quais bases testemunha são usadas?

A lista fixa 2, 3, 5, 7, 11, 13 e 23. Elas são devolvidas no campo witnesses em cada resposta bem-sucedida para que os clientes nunca precisem codificar o conjunto.

Isto é Miller–Rabin probabilístico?

Não. As bases são fixas e comprovadamente suficientes para todo inteiro no limite suportado, de modo que o mesmo n produz sempre o mesmo veredito determinístico de primo ou composto.

O que acontece se n for maior que o limite?

A capacidade não afirmará um veredito determinístico fora do intervalo em que as bases fixas estão certificadas.

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/miller-rabin-deterministic

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/miller-rabin-deterministic \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":97}'
{
  "n": 97
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.miller_rabin_deterministic",
  "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.

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.

A mesma aritmética modular pura alimenta o caminho gratuito do navegador e o da API, para que checagens de lição, brinquedos criptográficos e scripts de automação nunca discordem sobre um número de Carmichael limítrofe ou um pseudoprimo forte.

O que o Miller–Rabin determinístico devolve e como o limite funciona

Cada chamada bem-sucedida responde quatro perguntas relacionadas: se n é primo sob a suíte de Miller–Rabin de bases fixas, quais bases testemunha foram aplicadas, qual é o maior inteiro que esta suíte garante decidir corretamente e—se n for composto—qual testemunha falhou primeiro no teste de primo provavelmente forte. Esse corte rígido é a diferença de produto em relação a um verificador genérico de primalidade que poderia trocar de estratégia em silêncio ou afirmar primalidade sem declarar o limite do certificado. A resposta é um objeto JSON compacto com um sinalizador booleano prime, o inteiro n ecoado, um array ordenado witnesses, o limite numérico, um witness_count, um campo failing_witness (null para primos, uma base concreta para compostos) e um rótulo method com miller_rabin_deterministic para os clientes registrarem o caminho do algoritmo. Entrada ausente, fracionária, não numérica ou estritamente menor que dois é rejeitada com invalid_input antes de qualquer exponenciação modular. Valores maiores que o limite de garantia publicado também são rejeitados com invalid_input e uma mensagem que nomeia o limite, porque uma lista fixa de testemunhas só é certificado matemático dentro desse intervalo; acima dele, as mesmas bases podem deixar um composto indetectado. Use este endpoint quando precisar de um veredito auditável de Miller–Rabin determinístico com a lista de testemunhas e o limite gravados no resultado, não um palpite probabilístico nem a fatoração completa de cada divisor.

Como funciona o teste de primo provavelmente forte com bases fixas

Compostos pares são rejeitados de imediato com failing_witness dois sem percorrer o laço completo.

Onde uma API de Miller–Rabin determinístico se paga

Engenheiros de dados filtram colunas numéricas que afirmam ser primos e guardam o campo failing_witness no log de auditoria quando uma linha falha. Como a capacidade é tier A, você pode colar um número nesta página e executar a lógica idêntica grátis no navegador; automatize o mesmo contrato depois a US$ 0,002 por requisição ao integrar tarefas em scripts ou SDKs. Mantenha n um inteiro de pelo menos dois dentro do limite publicado, trate invalid_input como correção do cliente e não como nova tentativa, e registre os campos witnesses e bound sempre que precisar de um certificado reproduzível do que foi verificado.

Ver a documentação completa do KIT →