(defun main (&rest argv) (declare (ignorable argv)) (let* ((n (read)) (ok 1) (ng 1111111)) (loop while (> (abs (- ok ng)) 1) do (let* ((mid (+ ng (floor (- ok ng) 2))) (c (* mid mid mid))) (cond ((= n c) (format t "Yes~%") (return-from main)) ((> n c) (setq ok mid)) (t (setq ng mid))))) (when (= n (* ok ok ok)) (format t "Yes~%") (return-from main)) (format t "No~%"))) (main)