# Ordem multiplicativa módulo n (ordem do elemento)

Calcula a ordem multiplicativa ord\_n(a) — o menor k ≥ 1 com a^k ≡ 1 (mod n) (exige mdc(a, n) = 1). O algoritmo parte de φ(n) e vai removendo fatores primos testando a^(ord/p); a saída inclui a tabela de potências de a, a prova de minimalidade (a^(k/p) ≢ 1 para cada primo p | k), o subgrupo cíclico gerado , e indica se a é raiz primitiva (ord = φ(n)) ou atinge a ordem máxima (ord = λ(n)). Clássicos: ord\_7(3) = 6 = φ(7), 3 é raiz primitiva mod 7; ord\_15(2) = 4 < φ(15) = 8.

> Página canônica: https://elysiatools.com/pt/tools/order-of-element-mod-n

- **Categoria:** Math & Numbers

- **Palavras-chave:** ordem multiplicativa, ordem do elemento, raiz primitiva, subgrupo cíclico, grupo multiplicativo, logaritmo discreto, teoria dos números

## Visão geral

Calcule a ordem multiplicativa de um elemento a módulo n, encontrando o menor expoente inteiro positivo k tal que a^k ≡ 1 (mod n), com tabela de potências, prova de minimalidade e identificação de raízes primitivas.

## Entradas

- **Elemento a** (text): The element whose order is computed; reduced mod n first (up to 10⁵¹²).
- **Módulo n** (text): Modulus, 2 ≤ n ≤ 10¹² (needs factorization of n and φ(n)).

## Quando usar

- Ao determinar se um elemento específico é uma raiz primitiva módulo n.
- Ao analisar o subgrupo cíclico gerado por uma unidade em estruturas algébricas e criptográficas.
- Ao calcular o período de repetição de potências modulares e resolver problemas de logaritmo discreto.

## Como funciona

- Verifica se a e n são coprimos (mdc(a, n) = 1), pré-requisito para que o elemento possua ordem multiplicativa.
- Calcula φ(n) e λ(n), fatorando os expoentes para testar divisores primos candidatos por exponenciação modular rápida.
- Elimina fatores desnecessários testando a^(ord/p) mod n até obter a ordem mínima com prova formal de minimalidade.
- Gera a tabela completa de potências, constrói o subgrupo cíclico e sinaliza se o elemento atinge a ordem máxima λ(n) ou é raiz primitiva φ(n).

## Casos de uso

- Seleção e validação de geradores para troca de chaves Diffie-Hellman e esquemas criptográficos baseados em grupos cíclicos.
- Resolução de exercícios acadêmicos de álgebra abstrata e teoria analítica dos números.
- Análise de períodos de geradores congruenciais multiplicativos em testes de pseudoaleatoriedade.

## Perguntas frequentes

### O que é a ordem multiplicativa de um elemento módulo n?

É o menor inteiro positivo k ≥ 1 que satisfaz a congruência a^k ≡ 1 (mod n).

### Por que mdc(a, n) precisa ser igual a 1?

Se mdc(a, n) > 1, a não é invertível módulo n e nenhuma de suas potências deixará resto 1 na divisão por n.

### Como a ferramenta identifica uma raiz primitiva?

Um elemento a é classificado como raiz primitiva quando sua ordem multiplicativa é exatamente igual a φ(n).

### Qual a diferença entre φ(n) e λ(n) nos resultados?

φ(n) é o totiente de Euler (total de coprimos), enquanto λ(n) é o expoente de Carmichael (maior ordem possível de qualquer elemento mod n).

### Quais são os limites de entrada para a e n?

O valor de a pode conter até 512 dígitos, e o módulo n aceita valores de 2 até 10¹².

## Ferramentas relacionadas

- [Calculadora da função de Carmichael λ(n)](https://elysiatools.com/pt/tools/carmichael-function): Calcula a função de Carmichael λ(n) — o expoente do grupo multiplicativo (Z/nZ)*, ou seja, o menor k com a^k ≡ 1 (mod n) para todo a coprimo com n. Construída a partir da fatoração prima (λ(2)=1, λ(4)=2, λ(2^k)=2^(k−2) para k ≥ 3, λ(p^k)=φ(p^k) em potências ímpares, depois mmc), junto com φ(n), a existência de raiz primitiva e o critério de Korselt para detectar números de Carmichael. Clássicos: λ(561) = 80 (561 é o menor número de Carmichael) e λ(8) = 2 < φ(8) = 4.
- [Teorema chinês do resto (sistema de congruências)](https://elysiatools.com/pt/tools/chinese-remainder-theorem): Resolve o sistema x ≡ rᵢ (mod mᵢ) (2–20 equações) pelo teorema chinês do resto generalizado com fusão aos pares: módulos coprimos → módulo combinado igual ao produto; não coprimos porém compatíveis → MMC; sistema incompatível → ausência de solução relatada claramente. Cada congruência é verificada contra a solução final. Clássico: x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7) → x = 23 (mod 105).
- [Gerador de permutações / combinações / subconjuntos (com repetições)](https://elysiatools.com/pt/tools/combinatorial-generation): Gera permutações, combinações e subconjuntos de um multiconjunto com deduplicação automática em ordem lexicográfica: as permutações usam next_permutation com contagem exata n!/Π(mᵢ!); as combinações dão as k-subseções distintas do multiconjunto, contadas como coeficiente de x^k em Π(1+x+…+x^mᵢ) (C(n,k) se todos os elementos forem distintos); os subconjuntos enumeram cada subseção com contagem Π(mᵢ+1) (2ⁿ se todos distintos), incluindo o vazio. Até 12 elementos, exibição limitada a 200 entradas mas contagem sempre exata; o modo combinações exige 1 ≤ k ≤ n. Clássicos: permutações de \[A, A, B\] → 3!/2! = 3 (AAB, ABA, BAA); subconjuntos de \[A, A, B\] → (2+1)(1+1) = 6.
- [Calculadora da função totiente de Euler φ(n)](https://elysiatools.com/pt/tools/euler-totient-function): Calcula a função totiente de Euler φ(n) — quantos inteiros em \[1, n\] são coprimos com n. Fatora n por divisão de tentativa e avalia exatamente φ(n) = n · Π(1 − 1/p) (n ≤ 10¹²), com opção de listar os primeiros 60 coprimos e o lembrete do teorema de Euler a^φ(n) ≡ 1 (mod n). Clássicos: φ(36) = 12 (36 = 2² × 3²); se n for primo, φ(n) = n − 1, p. ex. φ(97) = 96.
- [Conversor de Fração Decimal](https://elysiatools.com/pt/tools/fraction-decimal-converter): Converta entre frações e decimais com suporte para números mistos, frações impróprias e vários formatos decimais
- [Resolvedor de jogos de soma zero (ponto de sela / programação linear)](https://elysiatools.com/pt/tools/game-theory-zero-sum): Resolve jogos de soma zero 2–6 × 2–6 (a matriz de pagamentos pertence ao jogador linha, o maximizador; o jogador coluna paga): primeiro o teste de ponto de sela (se o maximin dos mínimos das linhas iguala o minimax dos máximos das colunas, há equilíbrio em estratégias puras e todas as células de sela são listadas); caso contrário a matriz é deslocada para que todas as entradas sejam ≥ 1 e um simplex monofásico (base de folgas, regra de Bland) resolve max Σz s.a. Bz ≤ 1: o primal dá a estratégia mista q do jogador coluna e os preços duais de sombra são exatamente a solução y do jogador linha; o valor é deslocado de volta e x, q, v são verificados numericamente (xᵀA ≥ v, Aq ≤ v) junto com a igualdade minimax. Clássico: cara ou coroa \[\[1,-1\],\[-1,1\]\] → valor 0 com misturas 0.5/0.5.
- [Calculadora de transformada inversa de Laplace (frações parciais)](https://elysiatools.com/pt/tools/inverse-laplace-calculator): Calcula a transformada inversa de Laplace de F(s) = N(s)/D(s) (fração própria, denominador de grau ≤ 6): acha as raízes do denominador agrupadas por multiplicidade e pares conjugados, resolve o sistema linear de coeficientes para a decomposição em frações parciais e inverte termo a termo com os pares padrão (A/(s−r)→Ae^(rt), A/(s−r)^j→At^(j−1)e^(rt)/(j−1)!, (Bs+C)/((s−α)²+β²)→e^(αt)\[Bcos(βt)+…sin(βt)\]). Clássicos: 1/(s²+3s+2) → e^(−t)−e^(−2t); (3s+5)/(s²+4) → 3cos(2t)+2,5sin(2t).
- [Calculadora de transformada de Laplace (tabela de pares)](https://elysiatools.com/pt/tools/laplace-transform-calculator): Obtém por tabela a transformada de Laplace F(s) = ∫₀^∞ e^(−st)f(t)dt: 14 pares padrão (1, t, tⁿ, e^(at), tⁿe^(at), sin/cos(kt) e seus deslocamentos exponenciais, sinh/cosh, t·sin/t·cos, δ(t)), com substituição de parâmetros, região de convergência (p. ex. s > a), nota de derivação e avaliação numérica opcional num ponto s (com verificação de convergência). Exemplo: L{e^t} = 1/(s−1), s>1, F(2) = 1.

## Exemplos

- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Kotlin](https://elysiatools.com/pt/samples/android-image-processing-kotlin): Exemplos de processamento de imagem Android Kotlin incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Web Rust](https://elysiatools.com/pt/samples/web-image-processing-rust): Exemplos de processamento de imagem Web Rust incluindo leitura/gravação, redimensionamento e conversão de formato
