This is my Clojure solution to Chapter 1, Exercise 27:
(ns sicp.ch1.ex27
(:require [sicp.ch1.ex25 :as sicp-ch1-ex25]))
(defn fermat-test
[n a]
(= (sicp-ch1-ex25/expmod a n n) a))
(defn fermat-full-test
[n]
(every? (partial fermat-test n) (range n)))
(def carmichael-numbers [561 1105 1729 2465 2821 6601])
(every? fermat-full-test carmichael-numbers) ; => true -- but not
; prime numbers!
(ns sicp.ch1.ex27
(:require [sicp.ch1.ex25 :as sicp-ch1-ex25]))
(defn fermat-test
[n a]
(= (sicp-ch1-ex25/expmod a n n) a))
(defn fermat-full-test
[n]
(every? (partial fermat-test n) (range n)))
(def carmichael-numbers [561 1105 1729 2465 2821 6601])
(every? fermat-full-test carmichael-numbers) ; => true -- but not
; prime numbers!
No comments:
Post a Comment