Raiz n-ésima modular
Encontre todas as raízes k-ésimas de um número módulo um primo: as raízes quadradas de 2 módulo 17 são 6 e 11, em ordem. Quando não existe nenhuma, você recebe uma resposta clara em vez de uma lista vazia. 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
- A
- 2
- K
- 2
- Potência (W)
- 17
- A módulo
- 2
- Quantidade de raízes
- 2
- Raízes
- 6, 11
- MDC de k e φ
- 2
Uma raiz k-ésima modular de um inteiro a módulo um primo p é qualquer resíduo x tal que x elevado a k é congruente a a módulo p. Raízes quadradas módulo primos aparecem em tutoriais de Tonelli–Shanks, raízes cúbicas e superiores na álgebra de corpos finitos, e cursos de criptografia precisam de um oráculo confiável que liste todas as raízes ou recuse com clareza quando nenhuma existe. Esta calculadora aceita a, um expoente positivo k e um módulo primo p, reduz a ao intervalo canônico de zero a p menos um e devolve a lista ordenada completa de soluções nesse corpo.
O que são raízes k-ésimas modulares e quando existem
No grupo multiplicativo de um corpo primo todo resíduo não nulo tem uma ordem bem definida que divide p menos um. Elevar x a k produz um mapa cuja imagem é o conjunto dos resíduos potência k-ésima. Para um alvo a não nulo a congruência x a k congruente a a módulo p tem soluções se e somente se a elevado a (p menos um) dividido por d for congruente a um, onde d é o máximo divisor comum de k e p menos um.
Quando esse critério vale há exatamente d raízes não nulas distintas. O resíduo zero é especial: zero a qualquer potência positiva é zero, logo a congruente a zero tem a única raiz zero. Módulos compostos ficam fora desse quadro de grupo cíclico e são rejeitados para que o solver nunca finja que um produto pelo teorema chinês dos restos é uma resposta de corpo primo.
Estudantes encontram raízes quadradas ao checar símbolos de Legendre à mão, raízes superiores ao estudar cosets ciclotômicos ou logaritmos discretos, e falhas de existência quando um exercício pede a raiz cúbica de um não resíduo cúbico.
Como esta calculadora encontra cada raiz
Chame a capacidade com os campos inteiros a, k e p. A implementação primeiro verifica que k é um inteiro positivo e que p é um primo dentro do limite publicado com um teste de Miller–Rabin determinístico. Após reduzir a módulo p, o caso de resíduo zero devolve a única raiz zero.
Para a não nulo calcula d igual ao mdc de k e p menos um e aplica o teste de existência acima. Quando d vale um há uma raiz única obtida elevando a ao inverso modular de k módulo p menos um, o caminho rápido para expoentes coprimos.
Quando d é maior que um o solver encontra uma raiz primitiva g módulo p, recupera o logaritmo discreto de a na base g com baby-step giant-step e resolve a congruência linear k vezes y congruente a esse logaritmo módulo p menos um. Cada raiz devolvida é verificada por exponenciação modular antes da resposta.
Os valores absolutos de a e k estão limitados a um trilhão e o primo p perto de um bilhão para a memória de baby-step giant-step permanecer prática; se d ultrapassar dez mil raízes a requisição é recusada em vez de inundar o cliente.
Casos de uso
Criptografia e laboratórios de corpos finitos
Instrutores e alunos podem listar cada raiz quadrada ou superior módulo um primo pequeno, verificar critérios de existência e inspecionar gcd(k, p−1) quando um resíduo de exemplo não tem raiz k-ésima.
Programação competitiva e álgebra modular
Programadores competitivos podem checar soluções de x^k ≡ a (mod p) contra um oráculo determinístico em vez de Tonelli–Shanks caseiro ou laços de força bruta.
Perguntas frequentes
O que acontece se p não for primo?
Esta calculadora exige um módulo primo para que o grupo multiplicativo seja cíclico e o critério de existência seja exato. Validação falha não é cobrada.
E se não existir raiz k-ésima?
Uma lista vazia de sucesso nunca é devolvida na não existência.
Quais algoritmos a calculadora de raiz n-ésima modular usa?
Miller–Rabin para primalidade, expoentes com inverso modular quando gcd(k,p−1)=1; caso contrário raiz primitiva, logaritmo discreto baby-step giant-step e resolução de congruências lineares. Todos os caminhos são determinísticos.
A calculadora de raiz n-ésima modular é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
Quais são as raízes quadradas de 2 módulo 17?
São 6 e 11. Elevando qualquer uma delas ao quadrado e dividindo por 17, sobra resto 2. A calculadora mostra as duas em ordem crescente, junto com a quantidade de raízes.
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/modular-nth-root \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"k":2,"p":17}'const res = await fetch("https://api.kit.forhosting.com/numth/modular-nth-root", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"k": 2,
"p": 17
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/modular-nth-root",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"k": 2,
"p": 17
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/modular-nth-root", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"k":2,"p":17}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"k":2,"p":17}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/modular-nth-root", 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
{
"a": 2,
"k": 2,
"p": 17
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.modular_nth_root",
"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
Quando p é composto a requisição falha com invalid_input; quando o critério de existência a elevado a (p menos um) sobre o mdc de k e p menos um não é um módulo p, a requisição também falha em vez de devolver uma lista vazia de sucesso. O mesmo módulo puro e determinístico alimenta a ferramenta gratuita do navegador e o caminho da API pré-paga, de modo que demos de sala e corretores automáticos nunca discordam de uma raiz.
O que são raízes k-ésimas modulares e quando existem
Devolver invalid_input rígido na não existência alinha-se à linguagem dos textos de teoria dos números que dizem sem solução, e não a uma lista vazia que sistemas de cobrança poderiam tratar como sucesso.
Como esta calculadora encontra cada raiz
Cada solução y produz uma raiz g elevado a y, e as raízes distintas são ordenadas de forma crescente para um contrato de API estável.
Uso prático, limites, preço e entrega
Use a ferramenta do navegador quando quiser cada raiz quadrada ou superior ao ler uma nota de cripto, checar saída de programação competitiva ou corrigir um conjunto de tarefas de corpos finitos. Entradas aceitas são inteiros a com valor absoluto no máximo um trilhão, expoentes k de um a um trilhão e primos p de dois até cerca de um bilhão, sujeitos ao teto de segurança do número de raízes. Use a API quando um script, plugin de LMS ou caderno de pesquisa precisar de muitas consultas de raízes modulares sem embutir Tonelli–Shanks ou um logaritmo discreto. Cada requisição bem-sucedida é um item faturável a US$ 0,002; falhas de validação, módulos compostos e não existência comprovada não consomem saldo. A resposta ecoa a, k, p, o a_mod reduzido, root_count, o array roots crescente, gcd_k_phi igual a d, uma string de equação para exibição e uma tag method que nomeia o caminho do algoritmo. Conecte o endpoint a sandboxes de criptografia, auxiliares de programação competitiva e demos de teoria algébrica dos números que já preferem aritmética modular exata a aproximações flutuantes. Como a unidade é um único item e o motor é parse puro, a latência permanece baixa e o canal web gratuito espelha a API paga sem um segundo caminho de código que possa divergir.
Casos de integração
Corretores de tarefas e cadernos de pesquisa
Corretores automáticos e scripts podem confirmar conjuntos de raízes, rejeitar módulos compostos via invalid_input e manter cada produto intermediário dentro dos limites documentados.
Perguntas técnicas
Como calcular raízes k-ésimas modulares com esta API?
Envie JSON com os campos inteiros a, k (≥ 1) e o primo p para numth.modular_nth_root. Em sucesso a resposta devolve roots como array crescente, root_count, a_mod e gcd_k_phi.