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 '''3''' to '''√{{overline| n }} ''' with step '''2''': |
|||
⚫ | |||
<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))) |
|||
⚫ | |||
(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}}== |