【发布时间】:2020-01-11 01:42:13
【问题描述】:
我是 Clojure 的新手,正在研究这个函数 no-divisors?,如果没有介于 2 和 √ 之间的数字,它应该返回 true????除n,否则为假。我还需要在no-divisors 中使用 2 个函数。第一个是get-divisors,它接受一个数字 n 作为输入并返回 2 到 √???? 之间的所有数字?包括的。第二个函数是Divides?,如果 x 除以 n,则返回 true,否则返回 false。
这是我尝试过的:
(defn Divides? [a b]
(zero? (mod b a)))
(defn get_divisors [n]
( range 2 (Math/sqrt n)))
(println "get divisors" (get_divisors 101))
output :get divisors (2 3 4 5 6 7 8 9 10)
(defn no-divisors? [n]
(->> (get_divisors n)
(filter #(Divides? % n))
empty?))
(println "no-divisors"(no-divisors? 9))
//output :expected :false current: true
我预计结果是错误的,但事实并非如此。任何建议,我将不胜感激
【问题讨论】:
标签: clojure