Segundo algoritmo
Se usa una única variable local PUI, variamos P de manera que para cada etapa
de la iteración tengamos:
La solución: = PUI * AP (mod N)
funcion puismod (A,P,N)
local PUI
1 -
PUI
>
mientras P
0 ejecutar
>
A*PUI mod N -
PUI
>
P-1 -
P
>
/fmientras/
resultado PUI
/funcion/
Tercer algoritmo
Se puede fácilmente modificar este programa teniendo en cuenta que:
2
p
A
*P = (A*A)
.
Cuando P es par tenemos la siguiente relación:
P
PUI * A
= PUI * A *A
Cuando P es impar tenemos la siguiente relación:
P
PUI * A
= PUI * A *A
Se obtiene entonces un algoritmo rápido de A
funcion puismod (A, P, N)
local PUI
mientras P
0 ejecutar
>
si P mod 2=0 entonces
Programas de Aritmetica
Calculo Simbólico y Matemático con la HP 40G
P/2
(mod N).
P-1
(mod N).
P
(mod N).
157