用clojure解決euler problem 10

問題描述:

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.


解決方案:

(ns euler-problem-10.core
  (:use [clojure.contrib.math]))

(defn prime?
  [num]
 (every? #(or (> (rem num %) 0) (= num %)) (apply list (range 2 (inc (ceil (sqrt num)))))))

;(prime? 9)

(defn next-prime
  [num]
  (loop [x (inc num)]
    (if (prime? x)
      x
      (recur (inc x)))))

(defn sum-primes-below
  [num]
  (apply + (filter #(prime? %) (range 2 num))))

(sum-primes-below 2000000)

答案:142913828922
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章