Problem 20
(require 'calc-ext) (defvar calc-command-flags nil) (defun factorial (n) (let ((rst 1)) (while (math-lessp 0 n) (setq rst (math-mul rst n)) (setq n (math-sub n 1)) ) rst )) (defun digit-sum (n) (let* ((str (math-format-value n)) (len (length str)) (sum 0)) (dotimes (i len sum) (setq sum (+ sum (- (aref str i) ?0))) ))) (princ (digit-sum (factorial (string-to-number (car argv))))) (princ "\n")