Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
23
Task/Munchausen-numbers/Clojure/munchausen-numbers.clj
Normal file
23
Task/Munchausen-numbers/Clojure/munchausen-numbers.clj
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
(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))
|
||||
Loading…
Add table
Add a link
Reference in a new issue