powermod

Exponenciação modular: o resto da divisão de uma potência por um módulo.

Categoria: Symbolic Computations in MATLAB > Operators and Elementary Operations

Sintaxe

r = powermod(a, b, m)

Calcula mod(a^b, m) sem formar a potência completa.

Descrição

O resultado é igual a mod(a^b, m), mas a potência é reduzida passo a passo por quadrados sucessivos, de modo que expoentes grandes não estouram. É a operação básica da aritmética modular na teoria dos números e em esquemas como o RSA.

Os argumentos devem ser inteiros e o módulo positivo; caso contrário ocorre um erro. Um expoente negativo usa o inverso modular da base, e o resultado é NaN quando a base não tem inverso. Bases em array produzem um array do mesmo tamanho.

Argumentos de entrada

a
Base inteira, escalar ou array.
b
Expoente inteiro não negativo.
m
Módulo inteiro positivo.

Argumentos de saída

r
Resto no intervalo de 0 a m-1.

Exemplo

Potências grandes módulo um número

powermod(2, 10, 1000)
powermod([2 3 5], 20, 7)
powermod(7, 128, 13)
Saída
ans = 24
ans = 1×3

     4     2     4
ans = 3

Observações

No MatLivre powermod aceita apenas argumentos numéricos (double ou tipos inteiros); inteiros simbólicos geram erro.

Veja também

mod rem gcd primes isprime