Pequeno teorema de Fermat
2 elevado a 6 módulo 7 deixa resto 1, como prevê o pequeno teorema de Fermat. Informe uma base a e um primo p e receba o resto de a elevado a p menos 1 módulo p; um composto é recusado, nunca passa por primo. 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
- Base
- 2
- Primo
- 7
- Base reduzida
- 2
- Expoente
- 6
- Resto
- 1
- Expressão
- 2^{6} ≡ 1 (mod 7)
O pequeno teorema de Fermat afirma que, se p é primo e a é um inteiro não divisível por p, então a elevado a p menos um é congruente a um módulo p. Essa identidade sustenta os testes de primalidade de Fermat, os inversos em um corpo primo e os problemas de competição que pedem para reduzir uma potência enorme sem expandi-la. Esta calculadora recebe uma base a e um módulo primo p, verifica que p é de fato primo e devolve o resíduo exato de a elevado a p menos um módulo p com exponenciação modular BigInt determinística. Quando a e p são coprimos o resíduo é um, que é o teorema; quando p divide a o resíduo é zero.
O que o pequeno teorema de Fermat afirma e o que o resíduo significa
O pequeno teorema de Fermat diz que se p é um número primo e a é um inteiro que não é múltiplo de p, então a elevado a p menos um é congruente a um módulo p. Em símbolos, a a p menos um congruente a um mod p. Uma forma equivalente, que vale mesmo quando p divide a, é a a p congruente a a módulo p.
A primeira forma é a que esta capacidade avalia: calcula o resíduo de a a p menos um módulo p e o devolve como resultado principal. Quando a e p são coprimos o resíduo é sempre um, que é o teorema; essa é a verificação que o aluno escreve no dever de casa e a identidade usada para inverter a módulo p elevando a a p menos dois.
Quando p divide a a potência colapsa a zero módulo p porque toda potência positiva de um múltiplo de p continua múltiplo de p, de modo que o resíduo é zero e a marca coprime é falsa. Bases negativas são aceitas e reduzidas ao intervalo de zero até p menos um antes da potência, o que mantém o resto não negativo e coincide com a convenção usual de sala na aritmética modular.
Onde esta verificação é mais útil
Cursos de teoria dos números e plataformas de competição usam uma calculadora do pequeno teorema de Fermat para que aprendizes confirmem a a p menos um módulo p sem implementar exponenciação modular à mão e sem confundir um composto mentiroso de Fermat com um primo.
Cadernos de pesquisa e scripts recreativos chamam o mesmo contrato quando querem um oráculo independente para um exemplo publicado: dois à sexta módulo sete deve ser um, três à quarta módulo cinco deve ser um, e um módulo composto como nove deve ser rejeitado em vez de reduzido. Oficinas de criptografia que apresentam testes de primalidade de Fermat ou inversos em um corpo primo precisam de uma ferramenta que recuse um módulo composto, porque o ponto pedagógico é a hipótese do teorema, não uma potência modular silenciosa que pareça plausível.
Validação falha não consome saldo. Trate um erro de não primo como resultado de primeira classe na sua suíte: é o contrato que impede que um mentiroso de Fermat seja corrigido como acerto.
Casos de uso
Checagens de sala de aula e dever de casa
Peça que os alunos enviem uma base e um primo declarado e confirmem que a^(p−1) mod p é um quando o par é coprimo, ou que um módulo composto é rejeitado.
Labs de cripto e inversos em corpo primo
Confirme a^(p−2) como inverso de a módulo o primo p verificando antes que a^(p−1) ≡ 1 (mod p) no mesmo par, sem embutir uma rotina de potência modular.
Perguntas frequentes
O que esta calculadora do pequeno teorema de Fermat devolve?
Envie os inteiros base (a) e prime (p).
O que acontece se o módulo não for primo?
O pequeno teorema de Fermat exige um módulo primo; valores compostos não são reduzidos e não são faturados.
Quando o resíduo é igual a um?
Sempre que p for primo e gcd(a, p) = 1. Esse é o enunciado clássico do pequeno teorema de Fermat. Se p divide a, o resíduo é zero.
Bases negativas são aceitas?
Sim. Uma base negativa é reduzida ao intervalo 0 até p−1 antes da exponenciação, de modo que o resto é o resíduo não negativo usual.
O que acontece se a base for múltiplo de p?
O resíduo é 0, porque qualquer potência positiva de um múltiplo de p continua sendo múltiplo de p. É o único caso em que a condição do teorema falha, e o resultado mostra que a e p não são coprimos.
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/math/fermats-little-theorem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":2,"prime":7}'const res = await fetch("https://api.kit.forhosting.com/math/fermats-little-theorem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": 2,
"prime": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/fermats-little-theorem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": 2,
"prime": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/fermats-little-theorem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":2,"prime":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":2,"prime":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/fermats-little-theorem", 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
{
"base": 2,
"prime": 7
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.fermats_little_theorem",
"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
max_abs | 9007199254740991 |
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
Módulos compostos são rejeitados com invalid_input em vez de um resto enganoso, para que scripts de deveres nunca tratem um composto mentiroso de Fermat como primo.
O que o pequeno teorema de Fermat afirma e o que o resíduo significa
A calculadora também devolve o expoente p menos um, um booleano que registra se a e p não compartilham fator comum, uma marca congruent_to_one verdadeira exatamente quando o resíduo é um, e uma cadeia curta de congruência que você pode imprimir ao lado da resposta. Módulos compostos não são reduzidos: a tarefa falha com invalid_input para que um mentiroso de Fermat como trezentos e quarenta e um nunca se passe por primo.
Contrato de entrada, algoritmo e comportamento de erro
Os valores absolutos são limitados pelo teto de inteiros seguros do JavaScript para que todo produto modular intermediário permaneça exato sob BigInt. Se p for composto, um, zero ou negativo, a solicitação falha com uma mensagem que nomeia prime e afirma que o valor não é primo; essas falhas não são faturadas. Exemplo: base dois e primo sete produz resíduo um, porque dois à sexta é sessenta e quatro e sessenta e quatro menos nove vezes sete é um. Exemplo: base dez e primo cinco produz resíduo zero, porque cinco divide dez. Envie via POST um corpo JSON com dois campos inteiros obrigatórios: base, o inteiro a da potência, e prime, o módulo p que deve ser um primo pelo menos dois. Aceitam-se os aliases a para base e p, modulus ou mod para prime, para que modelos de aula que já rotulam o par assim não precisem de reescrita. Cada campo pode chegar como inteiro JSON ou como cadeia de dígitos; booleanos, cadeias vazias, frações e valores não finitos falham com invalid_input nomeando o campo. Em caso de sucesso o corpo ecoa base e prime, informa reduced_base igual a a módulo p de zero até p menos um, informa exponent igual a p menos um, e informa residue igual a reduced_base elevado a esse expoente módulo p. As marcas coprime e congruent_to_one permitem a um corretor afirmar o enunciado clássico sem rederivar a potência. Combine a resposta com as suas próprias notas se precisar de uma prova escrita; este endpoint devolve o resíduo e as marcas, não uma derivação passo a passo em prosa.
Onde uma API de resíduo de Fermat agrega valor
Como a implementação é parse pura de nível A, cada chamada bem-sucedida custa o preço-base publicado US$ 0,002 sem tokens de modelo e sem rede de saída. Mantenha as solicitações dentro dos limites inteiros publicados, fixe o resíduo e a marca congruent_to_one nos testes, e você obtém um resíduo de Fermat reproduzível para deveres, plugins LMS e workers de borda sem montar um sistema de álgebra computacional próprio.
Casos de integração
Correção automática de provas e LMS
Marque itens do pequeno teorema de Fermat com um oráculo determinístico que falha módulos compostos como invalid_input em vez de devolver um resto que um corretor defeituoso poderia tratar como sucesso.
Perguntas técnicas
Quanto custa a calculadora do pequeno teorema de Fermat?
A ferramenta do navegador é gratuita. As requisições API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é faturada.