(define (expmod base exp m)
(iterative-expmod base 1 exp m)
)
(define (iterative-expmod base1 base2 exp m)
(cond ((= exp 0) base2)
((even? exp) (iterative-expmod (mod (square base1) m) base2 (/ exp 2) m) )
(else (iterative-expmod base1 (mod (* base1 base2) m) (- exp 1) m) )
)
)
(define (mod a b)
(remainder a b)
)
(define (even? n)
(= (remainder n 2) 0)
)
(define (square x)
(* x x)
)
沒有留言:
張貼留言