Sunday, October 19, 2014

Project Euler Problem 10 Common Lisp

Project Euler Problem 10

(defun prime? (num)
  (flet ((multiple? (a b) (zerop (mod a b))))
    (cond ((evenp num) (= 2 num))
          ((< num 2) nil)
          ((multiple? num 3) (= 3 num))
          ((loop for i from 5 to (isqrt num) by 6
                 never (or (multiple? num i)
                           (multiple? num (+ i 2))))))))


(defun problem10 ()

  (loop for i below 2000000
        if (prime? i) sum i))

No comments:

Post a Comment