(defun primes-to (n)
  ;;It's backwards
  (let ((candidates (loop for i from 2 to n collect i)) (primes nil) (test nil))
    (loop while candidates do
      (setf test (pop candidates))
      (unless (zerop test)
      	(push test primes)
      	(setf candidates (remove-if #'(lambda (x) (zerop (rem x test))) candidates))
      	(when (> test (sqrt n))
      	 (setf primes (append canditates primes)) (return))))
    primes))

(apply #'+ (primes-to 2000000))