sicp 1.27

 

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

(define (fermat-test n a)
  (= (expmod a n n) a))

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

 

运行可知,561,1105,1729,2465,2821,6601均能通过检验

你可能感兴趣的:(F#)