问题描述:
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
What is the 10 001st prime number?
解决方案:
(ns euler-problem-7.core
(:use [clojure.contrib.math]))
(defn prime?
[num]
(every? #(> (rem num %) 0) (apply list (range 2 (inc (ceil (sqrt num)))))))
(defn next-prime
[num]
(loop [x (inc num)]
(if (prime? x)
x
(recur (inc x)))))
(defn nth-prime
[nth-num]
(loop
[current-prime 2, cnt 1]
(if (= cnt nth-num)
current-prime
(recur (next-prime current-prime) (inc cnt)))))
(nth-prime 6)
(nth-prime 10001)
第10001个质数是
104743