Fast Prime Number Generation in Clojure

后端 未结 16 1867
萌比男神i
萌比男神i 2020-12-02 12:30

I\'ve been working on solving Project Euler problems in Clojure to get better, and I\'ve already run into prime number generation a couple of times. My problem is that it is

16条回答
  •  没有蜡笔的小新
    2020-12-02 12:53

    Idiomatic, and not too bad

    (def primes
      (cons 1 (lazy-seq
                (filter (fn [i]
                          (not-any? (fn [p] (zero? (rem i p)))
                                    (take-while #(<= % (Math/sqrt i))
                                                (rest primes))))
                        (drop 2 (range))))))
    => #'user/primes
    (first (time (drop 10000 primes)))
    "Elapsed time: 0.023135 msecs"
    => 104729
    

提交回复
热议问题