(compile(defun p(n)(set's(sqrt n))(defun r(m k a)(if(= m 1)a(if(< s k)`(,@a,m())(if(=(set'e(do((m m(/ m k))(a 0(1+ a)))((>(mod m k)0)a)))0)(r m(1+ k)a)`(,@a,k,(if(> e 1)e),@(p(/ m(expt k e))))))))(r n 2())))(loop(format t"=~{~D~@[^~D~]~^*~} "(p(princ(read)))))