From c15c33dbbe82cd05d2f952bbb98d72b41be7eedf Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Sun, 28 Nov 2021 13:04:02 -0500 Subject: add exercise --- .../emacs-lisp/armstrong-numbers/armstrong-numbers.el | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'exercism') diff --git a/exercism/emacs-lisp/armstrong-numbers/armstrong-numbers.el b/exercism/emacs-lisp/armstrong-numbers/armstrong-numbers.el index d41293c..5034610 100644 --- a/exercism/emacs-lisp/armstrong-numbers/armstrong-numbers.el +++ b/exercism/emacs-lisp/armstrong-numbers/armstrong-numbers.el @@ -3,6 +3,21 @@ ;;; Commentary: ;;; Code: +(require 'calc) +(require 'seq) + +(defun kj/digits (n) + (let ((result nil)) + (while (> n 0) + (push (% n 10) result) + (setq n (/ n 10))) + result)) + +(defun armstrong-p (n) + (let* ((digits (kj/digits n)) + (ndigits (seq-length digits)) + (fn (lambda (n) (math-pow n ndigits)))) + (eql n (apply '+ (mapcar fn digits))))) (provide 'armstrong-numbers) ;;; armstrong-numbers.el ends here -- cgit v1.2.3