Munchausen numbers: Difference between revisions
Content added Content deleted
(Added Elixir) |
|||
Line 290: | Line 290: | ||
<pre>1 |
<pre>1 |
||
3435</pre> |
3435</pre> |
||
=={{header|Clojure}}== |
|||
<lang lisp>(ns async-example.core |
|||
(:require [clojure.math.numeric-tower :as math]) |
|||
(:use [criterium.core]) |
|||
(:gen-class)) |
|||
(defn get-digits [n] |
|||
" Convert number of a list of digits (e.g. 545 -> ((5), (4), (5)) " |
|||
(map #(Integer/valueOf (str %)) (String/valueOf n))) |
|||
(defn sum-power [digits] |
|||
" Convert digits such as abc... to a^a + b^b + c^c ..." |
|||
(let [digits-pwr (fn [n] |
|||
(apply + (map #(math/expt % %) digits)))] |
|||
(digits-pwr digits))) |
|||
(defn find-numbers [max-range] |
|||
" Filters for Munchausen numbers " |
|||
(->> |
|||
(range 1 (inc max-range)) |
|||
(filter #(= (sum-power (get-digits %)) %)))) |
|||
(println (find-numbers 5000)) |
|||
</lang> |
|||
{{Output}} |
|||
<pre> |
|||
(1 3435) |
|||
</pre> |
|||
=={{header|C sharp|C#}}== |
=={{header|C sharp|C#}}== |