うーむつまらない問題を出してしまったかな。無理矢理別解。

(defun my-expt (x n)
(do* ((n n (ash n -1))
(r 1 (if (= (logand n 1) 1) (* r x) r))
(x (* x x) (* x x)))
((= n 0) r)))