Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (def pw-range [273025 767253])
- (defn two-adjanced-digits? [x]
- (let [digits (str x)]
- (loop [last-digit (first digits)
- digits (next digits)]
- (cond
- (nil? digits) false
- (= (first digits)
- last-digit)
- true
- :else (recur (first digits) (next digits))))))
- (defn increase-digits-or-same? [x]
- (let [digits (map #(Character/getNumericValue %) (str x))]
- (loop [last-digit (first digits)
- digits (next digits)]
- (cond
- (nil? digits) true
- (<= last-digit (first digits)) (recur (first digits) (next digits))
- :else false))))
- (defn possible-password? [x]
- (and
- (two-adjanced-digits? x)
- (increase-digits-or-same? x)))
- (->> (range (get pw-range 0) (inc (get pw-range 1)))
- (filter two-adjanced-digits?)
- (filter increase-digits-or-same?)
- count) ;; => 910
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement