Код Ревью

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

    #| BEGIN (Write your solution here) |#
(define (square x)
  (* x x))

(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 (fermat-test n)
  (define (try-it a)
    (= (expmod a n n) a))
  (try-it (+ 1 (random (- n 1)))))

(define (fast-prime? n times)
  (cond ((= times 0) #t)
        ((fermat-test n)
         (fast-prime? n (- times 1)))
        (else #f)))

(define (prime? n)
  (fast-prime? n 100))

(define (carmichael-test n)
  (prime? n))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (square x)
  (* x x))

(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 (fermat-test n a)
  (define (try-it a n)
    (= (expmod a n n) a))
  (try-it a n))

(define (fast-prime? n times)
  (cond ((= times 0) #t)
        ((fermat-test n)
         (fast-prime? n (- times 1)))
        (else #f)))

(define (carmichael-test n)
 (define (carmichael-test-iter acc n)
   (cond ((= acc n) #t)
         ((fermat-test n acc)
          (carmichael-test-iter (+ acc 1) n))
         (else #f)))
  (carmichael-test-iter 1 n))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (square x)
  (* x x))

(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 (fermat-test n)
  (define (try-it a)
    (= (expmod a n n) a))
  (try-it (+ 1 (random (- n 1)))))

(define (fast-prime? n times)
  (cond ((= times 0) #t)
        ((fermat-test n)
         (fast-prime? n (- times 1)))
        (else #f)))

(define (prime? n)
  (fast-prime? n 100))

(define (carmichael-test n)
  (prime? n))
#| END |#
    #| BEGIN (Write your solution here) |#
(define (square x)
  (* x x))

(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 (fermat-test n a)
  (define (try-it a n)
    (= (expmod a n n) a))
  (try-it a n))

(define (fast-prime? n times)
  (cond ((= times 0) #t)
        ((fermat-test n)
         (fast-prime? n (- times 1)))
        (else #f)))

(define (carmichael-test n)
 (define (carmichael-test-iter acc n)
   (cond ((= acc n) #t)
         ((fermat-test n acc)
          (carmichael-test-iter (+ acc 1) n))
         (else #f)))
  (carmichael-test-iter 1 n))
#| END |#