RosettaCodeData/Task/Modular-exponentiation/PicoLisp/modular-exponentiation-1.l

9 lines
194 B
Plaintext

(de **Mod (X Y N)
(let M 1
(loop
(when (bit? 1 Y)
(setq M (% (* M X) N)) )
(T (=0 (setq Y (>> 1 Y)))
M )
(setq X (% (* X X) N)) ) ) )