#!/usr/local/bin/sbcl --script (defvar inputs (list 1 2 6 8 28 46)) (defun perfectNumberFunctional (n) (= n (loop for i from 1 below n when (= 0 (mod n i)) sum i))) (dolist (x inputs) (perfectNumberFunctional x) (princ x) (princ (perfectNumberFunctional x)) (princ " ") (if (perfectNumberFunctional x) "not" "not") ) (format t "~D is ~S ~%" 6 (if (perfectNumberFunctional 7) ' is Perfect' ' is NOT Perfect'))