Код Ревью

Сравни свои решения

    #| BEGIN (Write your solution here) |#
(define (expmod base exp m)
  (cond ((= exp 0) 1)
        ((even? exp)
         (remainder 
          (square (expmod base (/ exp 2) m))
          m))
        (else
         (remainder 
          (* base (expmod base (- exp 1) m))
          m))))

(define (square n)
  (* n n))

(define (carmichael-test n)
  (define (try-it a)
    (cond [(= a 0) #t]
          [(= (expmod a n n) a) (try-it (- a 1))]
          [else #f]))
  (try-it (- n 1)))
#| END |#