Clojure - это премьер?простые числа - PullRequest
0 голосов
/ 16 декабря 2018

функция с именем is-prime?который принимает входные данные n и возвращает истину, если n простое, и ложь в противном случае.Эта функция должна проверить, чтобы видеть, является ли n 1 или 2 и ответить соответственно;если нет, он должен вызвать ваши делители? *

(defn divides? [div n] (zero? (mod n div)))

 (defn no-divisors? [n]
  (->> (range 2 n)
   (filter #(divides? % n))
   empty?))

код проблемы ниже

(defn is-prime? [n]
(and (> n 1) (not-any? (filter #(no-divisors? % n)) (range 2 n))))

/// current output///
(is-prime? 1)
 => false
(is-prime? 2)
 => true
(is-prime? 3)
 => false
(is-prime? 4)
 => false
(is-prime? 101)
 => false
/// current output///

/// required output ///
(is-prime? 1)
 => false
 (is-prime? 2)
 => true
 (is-prime? 3)
 => true
 (is-prime? 4)
 => false
 (is-prime? 101)
 => true
 /// required output ///

помощь будет принята

1 Ответ

0 голосов
/ 17 декабря 2018

no-divisors? является избыточным.

(letfn [(divides? [m n] (zero? (rem m n)))
        (prime? [n] (and (< 1 n) (not-any? #(divides? n %) (range 2 n))))]

    (prn (for [i (range 100)
                  :when (prime? i)] i)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...