(defun main (&rest argv) (declare (ignorable argv)) (let* ((n (read)) (a (mod 1 n)) (b (mod 1 n)) (tmp 0) (res 1)) (loop while (not (zerop a)) do (setf res (1+ res) tmp a a (mod b n) b (mod (+ tmp b) n))) (format t "~d~%" res))) (main)