Primality by trial division: Difference between revisions

Content added Content deleted
m (→‎compact version: elided scrolling for the output section.)
Line 647: Line 647:


=={{header|Clojure}}==
=={{header|Clojure}}==
The function used in both versions:
<lang clojure>(defn divides? [k n] (zero? (mod k n)))
<lang clojure>(defn divides? [k n] (zero? (mod k n)))</lang>


Simple loop from &nbsp; '''3''' &nbsp; to &nbsp; '''&radic;{{overline|&nbsp;n&nbsp;}} &nbsp;''' with step '''2''':
(defn prime? [x]
<lang clojure>(defn prime? [x]
(or (= 2 x)
(or (= 2 x)
(= 3 x)
(= 3 x)
Line 656: Line 658:
(not-any? (partial divides? x)
(not-any? (partial divides? x)
(range 3 (math/sqrt x) 2)))))</lang>
(range 3 (math/sqrt x) 2)))))</lang>

A similar method, but only with prime divisors:

<lang clojure>(declare prime?)

(def primes (filter prime? (range)))

(defn prime? [x]
(or (= 2 x)
(and (integer? x)
(< 1 x)
(not-any? (partial divides? x)
(take-while (partial > (math/sqrt x)) primes)))))
</lang>


=={{header|CMake}}==
=={{header|CMake}}==