(defvar N) (defvar M) (defvar temp) (setq temp (read-from-string (concatenate 'string "(" (read-line) ")"))) (setq N (nth 0 temp)) (setq M (nth 1 temp)) ;(format t "~d ~d~%" N M) (defvar f1) (defvar f2) (setq f1 0) (setq f2 1) (setq temp 0) (loop for i from 3 to N do (setq temp f2) (setq f2 (mod (+ f1 f2) M)) (setq f1 temp)) (format t "~d~%" (case N (1 0) (2 1) (otherwise f2)))