2013年4月9日 星期二

NCNU LISP HW4


(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)
)

沒有留言:

張貼留言