Skip to content

Commit 792bd01

Browse files
committed
better sieve
1 parent be7d3bb commit 792bd01

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

  • for-clojure/problem-106/src/problem_106

for-clojure/problem-106/src/problem_106/core.clj

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@
111111

112112
(pdump (allocate (first pnls)
113113
(driver-spec :prod-cogs (first pnls))))
114+
114115
(defn fact [n acc]
115116
(if
116117
(< n 2N)
@@ -151,6 +152,24 @@
151152
{:c 5}
152153
)
153154

155+
(defn sieve [xs]
156+
(let [x (first xs)]
157+
(cons x
158+
(lazy-seq (sieve
159+
(filter #(not= 0 (mod % x))
160+
(rest xs)))))))
161+
162+
(def primes (sieve (cons 2 (iterate (partial + 2N) 3))))
163+
164+
(pdump (take 5 (drop 1000 primes)))
165+
166+
(def testo (fn [n] (letfn [(sieve [primes]
167+
(let [p (first primes)]
168+
(cons p (lazy-seq (sieve (filter #(not= 0 (mod % p))
169+
(rest primes)))))
170+
))]
171+
(take n (sieve (cons 2 (iterate (partial + 2) 3)))))))
172+
154173
((fn [sent])
155174
"Have a nice day.")
156175

0 commit comments

Comments
 (0)