Reverse factorial

前端 未结 17 1500
南笙
南笙 2020-12-05 03:12

Well, we all know that if N is given it\'s easy to calculate N!. But what about the inverse?

N! is given and you are about to find N - Is that possible ? I\'m curio

17条回答
  •  长情又很酷
    2020-12-05 03:43

    Here is some clojure code:

    (defn- reverse-fact-help [n div]
        (cond (not (= 0 (rem n div))) nil
              (= 1 (quot n div)) div
              :else (reverse-fact-help (/ n div) (+ div 1))))
    (defn reverse-fact [n] (reverse-fact-help n 2))
    

    Suppose n=120, div=2. 120/2=60, 60/3=20, 20/4=5, 5/5=1, return 5

    Suppose n=12, div=2. 12/2=6, 6/3=2, 2/4=.5, return 'nil'

提交回复
热议问题