Lista de totativos: inteiros coprimos de n
Um totativo de n é um inteiro positivo não maior que n que não compartilha com n nenhum fator além de 1.
Executar grátis
Esta calculadora gera a lista completa e ordenada, em vez de apenas informar o valor da função totiente de Euler. Informe um inteiro positivo para receber o valor original, a quantidade de inteiros que atendem à condição e os próprios totativos. O recurso é útil para conferir exercícios de aritmética modular, explorar sistemas reduzidos de resíduos e ver exatamente quais valores contribuem para a função totiente de Euler.
O que a lista de totativos representa
Os totativos de n são exatamente os inteiros de 1 a n cujo máximo divisor comum com n é 1. Dizer que dois números têm máximo divisor comum igual a 1 equivale a dizer que são coprimos ou primos entre si. Por exemplo, um candidato é excluído se compartilhar qualquer fator primo com n, mesmo que não seja divisor de n. A matriz retornada vem em ordem crescente porque os candidatos são testados a partir de 1. O valor 1 sempre aparece, pois é coprimo de todo inteiro positivo. Em geral, o extremo n não aparece porque gcd(n, n) é igual a n; o caso especial é n = 1, cuja lista é [1]. A contagem fornecida corresponde ao comprimento da lista e, portanto, à função totiente de Euler phi(n). Esta capacidade mostra os elementos efetivos; quando você precisa somente da contagem para um inteiro muito grande, uma calculadora de totiente é mais adequada. A distinção importa na aritmética modular, em que esses elementos formam o sistema reduzido de resíduos módulo n.
Como o cálculo funciona
A calculadora valida n antes de realizar qualquer operação. Ela aceita um número inteiro ou um inteiro escrito como texto decimal simples, rejeita frações e valores não numéricos e informa um erro de entrada quando n é menor que 1. Também aplica o limite superior publicado para que a criação de uma matriz JSON potencialmente grande continue previsível tanto no navegador quanto na API. Após a validação, o algoritmo considera cada inteiro de 1 a n. Para cada candidato, aplica o algoritmo de Euclides: substitui repetidamente o par maior pelo divisor e pelo resto até que o resto seja zero. O último divisor diferente de zero é o máximo divisor comum. Um candidato só entra no resultado quando esse divisor é 1. O procedimento usa aritmética inteira exata, sem aproximações, banco de fatores, solicitação de rede, escolha aleatória ou relógio. Assim, a mesma entrada sempre gera a mesma saída ordenada. A contagem é obtida da matriz concluída, e não calculada separadamente, evitando divergências entre a lista exibida e o tamanho informado.
Como usar o resultado corretamente
Use a lista quando a próxima etapa depender das classes de resíduos individuais, e não apenas da quantidade delas. Na teoria elementar dos números, ela permite verificar diretamente quais números são invertíveis módulo n: cada valor listado tem um inverso multiplicativo módulo n, enquanto cada valor omitido não tem. Em aulas de criptografia, o resultado ajuda a demonstrar por que um multiplicador deve ser coprimo do módulo, embora seja um resultado aritmético educacional e não um sistema de geração de chaves. Você também pode comparar a contagem retornada com um cálculo manual da fórmula do totiente de Euler para conferir uma fatoração. Lembre-se de que coprimalidade é uma relação, não uma afirmação de que cada número listado seja primo. Valores compostos podem aparecer sempre que não compartilhem nenhum fator primo com n. Por exemplo, um candidato composto pode ser totativo de um módulo primo. Para uso automatizado, leia diretamente a matriz de totativos e trate a contagem como resumo. Se você só precisa saber se um par específico é coprimo, um verificador de coprimalidade evita montar a lista completa.
Casos de uso
Montar um sistema reduzido de resíduos
Gere o conjunto crescente completo de representantes de resíduos invertíveis módulo n.
Conferir exercícios de teoria dos números
Compare uma lista e uma contagem de totativos feitas à mão com um resultado determinístico.
Explorar inversos modulares
Identifique cada valor do intervalo padrão que pode ter um inverso multiplicativo módulo n.
Perguntas frequentes
O que é um totativo?
Um totativo de n é um inteiro positivo de no máximo n cujo máximo divisor comum com n é 1.
A contagem é a função totiente de Euler?
Sim. O número de valores na matriz de totativos é phi(n), a função totiente de Euler.
Por que n normalmente não aparece na própria lista?
Porque gcd(n, n) é n, não 1. A exceção é n = 1, cuja lista de totativos é [1].
Todo totativo precisa ser primo?
Não. Um totativo pode ser composto; ele só não pode compartilhar fator primo com n.
Quanto custa uma solicitação?
O preço da API é US$ 0,002 por solicitação. A versão no navegador roda localmente sem cobrança da API.
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/totatives-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":12}'const res = await fetch("https://api.kit.forhosting.com/numth/totatives-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/totatives-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/totatives-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/totatives-list", 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
{
"n": 12
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.totatives_list",
"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_n | 100000 |
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. |