It took us until the 80th problem to find one, but we finally found an ugly wart in Clojure 1.2: big square roots. At the time of writing, it does not properly accommodate bigdec numbers. Look at this ugly behavior:

```
(expt 12 34) ;; 4922235242952026704037113243122008064 ... a bignum.
(expt 12 (/ 34)) ;; 1.0758225047262997 ... a double!
(with-precision 100 (expt 12 (/ 34))) ;; 1.0758225047262997... still a double!
```

Anyway, as I borrowed a little code to quickly implement a big-sqrt function but since I am not sure about the copyright of the code in question, I leave that function as an exercise to the reader. Accomplishing the task via Java libraries is another option.

With the big-sqrt function out of the way, the rest of this problem was extremely straightforward.

```
(use '[clojure.contrib.math :only (sqrt expt)])
(defn big-sqrt [n]
(with-precision 150 (exercise-for-the-reader)))
(defn as-digits [num]
(filter #(>= % 0) (map #(Character/getNumericValue %) (str num))))
(defn hundred-digit-sum [num]
(reduce + (take 100 (as-digits num))))
(defn square? [n] (= n (* (int (sqrt n)) (int (sqrt n)))))
(defn euler-80 []
(->> (for [n (range 1 101)
:when (not (square? n))]
(hundred-digit-sum (big-sqrt (bigdec n))))
(reduce +)))
(time (euler-80)) ;; "Elapsed time: 92.808923 msecs"
```