;;;递归算法
(defun f (n)
(if (= n 2)
(setq va (list 2))
(if (= n 3)
(setq va (list 3 2))
(if (= (apply '* (mapcar '(lambda (x) (rem n x)) (f (fix (sqrt n))))) 0)
(setq va (f (- n 1 (rem n 2))))
(setq va (cons n (f (- n 1 (rem n 2)))))
)
)
)
va
)
(reverse (f 1000))
;;;筛法
(defun f (n)
(setq i 3 lst nil)
(while (<= i n)
(setq lst (cons i lst))
(setq i (+ i 2))
)
(setq llst (cons 2 (reverse lst)))
(setq flst nil)
(while (and (/= (cdr llst) nil) (/= (setq c (nth 0 llst)) nil))
(setq flst (cons c flst))
(setq llst (vl-remove-if '(lambda (x) (= (rem x c) 0)) (cdr llst)))
)
(reverse (cons (car llst) flst))
)
(f 1000)