;;; -*- Mode:LISP; Package:user; Base:10; Readtable:CL -*- (defun fac (x) (do ((y 1 (+ 1 y)) (ans 1)) ((> y x) ans) (setq ans (* ans y)))) (defun unfac (x) (do ((y 1 (+ 1 y))) ((or ;(> y x) (> (- y x) 0) (= x 1)) (list x y)) (setq x (/ x y))))