相关疑难解决方法(0)

如何优化我的递归Lisp函数

我试图创建一个prime-factors返回数字素数的函数。为此,我创建了is-prime函数,并将prime-factors-helper对主要因素进行递归检查。

(defun is-prime (n &optional (d (- n 1))) 
  (if (/= n 1) (or (= d 1)
          (and (/= (rem n d) 0)
               (is-prime  n (- d 1)))) ()))

(defun prime-factors-helper (x n)
   (if (is-prime x) 
       (list x) 
       (if (is-prime n) 
            (if (AND (= (mod x n) 0) (<= n (/ x 2)))
                (cons n (prime-factors-helper (/ x n) n))
                (prime-factors-helper x (+ 1 n)))       
            (prime-factors-helper x (+ 1 n)))))

(defun prime-factors (x)
    (prime-factors-helper …
Run Code Online (Sandbox Code Playgroud)

lisp optimization common-lisp

1
推荐指数
1
解决办法
143
查看次数

标签 统计

common-lisp ×1

lisp ×1

optimization ×1