;15. Determine the least common multiple of the numerical values of a nonlinear list. ; mygcd(a, b) = a, if b = 0 ; = mygcd(b, a mod b), otherwise (defun mygcd (a b) (cond ((= 0 b) a) (t (mygcd b (mod a b))))) ; mylcm(a, b) = a * b / mygcd(a, b) (defun mylcm (a b) (/ (* a b) (mygcd a b))) ; least-common-multiple(lst) = 1, if lst = () ; = lst, if lst is atom and number and not 0 ; = error, if lst is atom and not number or 0 ; = mylcm(least-common-multiple(car lst), least-common-multiple(cdr lst)), otherwise (defun least-common-multiple (lst) (cond ((null lst) 1) ((and (atom lst) (numberp lst) (not (= 0 lst))) lst) ((atom lst) 1) (t (mylcm (least-common-multiple (car lst)) (least-common-multiple (cdr lst)))))) ; least-common-multiple-main(lst) = error, if lst = () ; = least-common-multiple(lst), otherwise (defun least-common-multiple-main (lst) (cond ((null lst) (error "Invalid argument")) (t (least-common-multiple lst)) )) (print (least-common-multiple-main '(12 2 4 6 8))) (print (least-common-multiple-main '(4 10 (5 6) 2))) (print (least-common-multiple-main '(1 A (2 3 B 6) 5))) (print (least-common-multiple-main '(1(2(3(4(F)5)6)1)1))) (exit)