我想返回一个数字的因子,这些因素应该在给定的范围内.喜欢:
user=> (factors (range 1 10) 12)
(1 2 3 4 6)
Run Code Online (Sandbox Code Playgroud)
我写了一些代码,但它们返回true或false.我的代码是:
(defn factors [range num]
(map #(= (mod num %) 0) range))
Run Code Online (Sandbox Code Playgroud)
测试结果:
user=> (factors (range 1 10) 12)
(true true true true false true false false false)
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得数字(1 2 3 4 6)
而不是真实和错误?非常感谢!
用途filter
:
(defn factors [candidates num]
(filter #(zero? (mod num %)) candidates))
Run Code Online (Sandbox Code Playgroud)
例:
(factors (range 1 10) 12)
;=> (1 2 3 4 6)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
52 次 |
最近记录: |