(defun main (&rest argv) (declare (ignorable argv)) (let* ((n (read))) (loop for i from (ash 1 15) downto 1 when (zerop (mod n (* i i))) do (format t "~d ~d~%" i (floor n (* i i))) (return-from main)))) (main)