Код Ревью
Сравни свои решения
#| BEGIN (Введите свое решение) |#
(define (square x)
(* x x))
(define (even? n)
(= (remainder n 2) 0))
(define (expmod base exp m)
(cond ((= exp 0) 1)
((even? exp)
(let ((x (expmod base (/ exp 2) m)))
(let ((sqr (remainder (square x) m)))
(if (and (= sqr 1)
(not (= x 1))
(not (= x (- m 1))))
0
sqr))))
(else
(remainder (* base (expmod base (- exp 1) m))
m))))
(define (miller-rabin-test n)
(define (iter a)
(if (= a 0)
#t
(if (= (expmod a (- n 1) n) 0)
#f
(iter (- a 1)))))
(iter (- n 1)))
#| END |#