Verificador primo de Wieferich
O 1093 é um primo de Wieferich: 2 elevado a 1092 deixa resto 1 na divisão por 1093², que é 1194649. Digite um primo para ver esse resto e se a condição, muito rara, é cumprida. 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)
- 1.093
- p ao quadrado
- 1194649
- Resto
- 1
- Expressão
- 2^{1092} ≡ 1 (mod 1194649)
Um primo de Wieferich é um número primo p para o qual dois elevado a p menos um deixa resto um ao dividir por p ao quadrado. Essa congruência reforça o enunciado usual do pequeno teorema de Fermat de que dois a p menos um é um módulo p, e aparece no estudo do último teorema de Fermat no primeiro caso, lemas de elevação do expoente e restrições sobre números perfeitos ímpares. Só se conhecem dois desses primos—1093 e 3511—de modo que a maioria dos primos do dia a dia falha no teste. Este verificador aceita um único primo p, verifica a primalidade, calcula a potência modular exata com aritmética BigInt determinística e devolve se o resto é um junto com p ao quadrado e uma cadeia curta de congruência.
O que é um primo de Wieferich e por que o módulo é p ao quadrado
O pequeno teorema de Fermat diz que se p é primo e não divide a base a, então a elevado a p menos um é congruente a um módulo p. Para a igual a dois isso é simplesmente dois a p menos um congruente a um módulo p para todo primo ímpar p. Um primo de Wieferich pede a mesma congruência um módulo acima: dois a p menos um deve ser congruente a um módulo p ao quadrado, não apenas módulo p.
De forma equivalente, a ordem de dois no grupo multiplicativo das unidades módulo p ao quadrado divide p menos um de modo que o quociente de Fermat de dois na base p se anula. Esse fator p extra no módulo torna a condição extremamente rara. Buscas computacionais exaustivas verificaram primos muito além de qualquer exemplo de sala de aula, e as únicas soluções conhecidas continuam sendo p igual a 1093 e p igual a 3511.
O primo dois falha: dois à primeira potência é dois, e dois módulo quatro é dois, não um. Primos ordinários como três, cinco, sete e onze produzem restos diferentes de um quando dois a p menos um é reduzido módulo p ao quadrado.
Onde um verificador de primo de Wieferich agrega valor
Cursos de teoria dos números e plataformas de treino para olimpíadas usam um verificador de primo de Wieferich para que aprendizes confirmem afirmações de livro sobre os dois exemplos conhecidos sem implementar exponenciação modular à mão e sem confundir o módulo p com p ao quadrado. Cadernos de pesquisa e scripts de matemática recreativa chamam o mesmo contrato ao varrer primos candidatos ou validar tabelas offline contra um oráculo independente.
Sites de conteúdo que ranqueiam por verificador de primo de Wieferich ou consultas do quociente de Fermat se beneficiam de uma ferramenta ao vivo cujo caminho gratuito coincide byte a byte com a automação paga. Equipes de engenharia que ensinam ou demonstram teoria dos números criptográfica podem mostrar como uma congruência parecida com o pequeno teorema de Fermat se torna raríssima quando o módulo é elevado ao quadrado, reforçando por que hipóteses modulares ingênuas exigem enunciado cuidadoso.
Prefira esta ferramenta quando a pergunta for estritamente se um primo dado satisfaz dois a p menos um congruente a um módulo p ao quadrado—não quando precisar de uma busca de todos os primos em um intervalo, um serviço de fatoração completa ou certificados para inteiros de milhares de bits.
Casos de uso
Oráculo independente para cadernos de pesquisa
Valide tabelas offline ou varreduras programadas de primos candidatos contra uma implementação determinística de potência modular.
Perguntas frequentes
O que é um primo de Wieferich?
Um primo p tal que 2^{p−1} ≡ 1 (mod p²). Só se conhecem 1093 e 3511. A verificação é mais estrita que o pequeno teorema de Fermat, que só exige congruência módulo p.
O 1093 é um primo de Wieferich?
Sim. O quadrado de 1093 é 1194649, e 2 elevado a 1092 deixa resto 1 na divisão por esse quadrado, que é exatamente a condição de Wieferich. É um dos dois únicos exemplos conhecidos.
Quantos primos de Wieferich são conhecidos?
Apenas dois: 1093 e 3511. Buscas por computador já verificaram primos muito maiores que qualquer exemplo de aula sem achar um terceiro, então quase todo primo testado vai falhar.
O 2 é um primo de Wieferich?
Não. Para o primo 2, a potência é 2 elevado a 1, que vale 2, e 2 dividido por 4 deixa resto 2, não 1. A condição não se cumpre.
Qual a diferença entre um primo de Wieferich e o pequeno teorema de Fermat?
O pequeno teorema de Fermat diz que 2 elevado a p menos 1 deixa resto 1 na divisão por p, para todo primo ímpar. Um primo de Wieferich exige esse resto 1 na divisão pelo quadrado de p.
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/wieferich-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":1093}'const res = await fetch("https://api.kit.forhosting.com/numth/wieferich-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 1093
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/wieferich-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 1093
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/wieferich-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":1093}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":1093}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/wieferich-prime", 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": 1093
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.wieferich_prime",
"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.
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
Entrada composta é rejeitada com invalid_input em vez de um falso negativo, para que scripts de deveres e cadernos de pesquisa nunca tratem um composto como primo não-Wieferich por acidente.
O que é um primo de Wieferich e por que o módulo é p ao quadrado
Este endpoint codifica exatamente essa definição: nunca suaviza o módulo de volta a p, nunca substitui uma testemunha probabilística e nunca devolve is_wieferich true a menos que a potência modular completa seja um.
Contrato de entrada, campos de resposta e comportamento de erro
De forma crítica, p deve ser primo. Esse desenho coincide com a definição matemática (primos de Wieferich são uma subclasse de primos) e evita que clientes leiam uma falha de composto como um false bem-sucedido. Envie um corpo JSON via POST com o campo inteiro obrigatório p (aliases prime e n). O valor pode chegar como número JSON ou como cadeia de dígitos decimais; deve ser um inteiro completo pelo menos dois e no máximo o teto de inteiros seguros do JavaScript. Frações, booleanos, cadeias vazias e campos ausentes falham com invalid_input antes de qualquer exponenciação. Em caso de sucesso o corpo inclui p ecoado como número; p_squared como a cadeia decimal exata de p vezes p; remainder como a cadeia decimal exata de dois a p menos um módulo p ao quadrado; is_wieferich como booleano verdadeiro só quando remainder é um; e expression, uma congruência legível.
Onde um verificador de primo de Wieferich agrega valor
Como a capacidade é parse pura de nível A, cada chamada bem-sucedida é determinística, offline e precificada em US$ 0,002 sem tokens de modelo. Mantenha p primo e dentro da faixa segura publicada, trate invalid_input como correção do cliente e fixe a cadeia remainder nos testes para que refatorações futuras não alterem em silêncio o resultado modular.
Casos de integração
Checagens de sala dos dois exemplos conhecidos
Permita que estudantes enviem p igual a 1093 ou 3511 e confirmem que is_wieferich é true, depois contrastem com primos ordinários como 3, 5 ou 7.
Landing SEO e widget gratuito no navegador
Ofereça uma página de verificador de primo de Wieferich cujo caminho gratuito coincida com o remainder e o flag da API para o mesmo primo p.
Perguntas técnicas
Que entrada o verificador aceita?
Um único inteiro primo p ≥ 2 (campo p, aliases prime ou n), como número JSON ou cadeia de dígitos na faixa de inteiros seguros. Não primos e valores malformados falham com invalid_input.
O que acontece se p não for primo?
A tarefa falha com invalid_input. Primos de Wieferich se definem só para primos; compostos são rejeitados em vez de retornados como is_wieferich false.
O 2 é um primo de Wieferich?
Não. 2^{1} = 2 e 2 mod 4 é igual a 2, não a 1, portanto is_wieferich é false para p igual a 2.
Quanto custa o verificador de primo de Wieferich?
A ferramenta do navegador é gratuita. Pedidos API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.