用clojure解决euler problem 7

来源:互联网 发布:网络赚钱qq群 编辑:程序博客网 时间:2024/06/05 16:29

问题描述:

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