Problem 29 was trivial. It asks us for the number of distinct values generated by the expression a^b, where a and b are between 2 and 100, inclusive.

Clojure makes this problem a snap by providing us with the set abstraction:

```
(use '[clojure.contrib.math :only (expt)])
(defn euler-29 []
(count (into #{} (for [a (range 2 101)
b (range 2 101)]
(expt a b)))))
(euler-29)
```

Over on clojure-euler, people seemed to favor the `distinct`

function to using `into #{}`

. I hadn’t ever seen the `distinct`

function before, but I would agree it would be a better choice.

If you don’t mind the decrease in readability, this problem can even be solved by a one-liner:

`(count (distinct (for [a (range 2 101) b (range 2 101)] (.pow (bigint a) b))))`

See you tomorrow!