(defn population-count [n]
  (Long/bitCount n))         

(defn exp [n pow]
  (reduce * (repeat pow n)))

(defn evil? [n]
  (even? (population-count n)))

(defn odious? [n]
  (odd? (population-count n)))






(defn integers []
  (iterate inc 0))

(defn powers-of-n [n]
  (map #(exp n %) (integers)))

(defn evil-numbers []
  (filter evil? (integers)))

(defn odious-numbers []
  (filter odious? (integers)))