;;; -*- 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)
	    (= x 1))
       x)
    (setq x (/ x y))))

