#!/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) (format t "~D is ~S perfect ~%" x (if (perfectNumberFunctional x) 'NOT' '')) )