先跳过部分题目吧,为什么跳过?主要是跳过的都是数学证明题,还有一个题目,跟么get不到题目意思。本来计划每周一篇,却因为自己的原因,一个月多都没有更新。惭愧!
题目
相关代码书本已经给出,我就直接贴上我的clojure版本。
(defn smallest-divisor [n]
(find-divisor n 2)
)
(defn find-divisor [n test-divisor]
(cond (> (square test-divisor) n) n
(divisor? test-divisor n) test-divisor
:else (find-divisor n (+ test-divisor 1))
)
)
(defn divisor? [ a b](= (mod b a) 0 ))
(defn square [x](* x x ))
代码中需要注意的仅有mod求值部分,表达方式与其他Lisp语言不一样。
执行题目中的数据,结果如下
没有什么特别的要说,就这样吧,争取明天再来一篇。
看完这本书,记录自己做过的练习题,这就是本博客更新的意义。