Find the sum of the digits in the number 100!

Permalink: http://projecteuler.net/problem=20

First of all we need to calculate factorial.

Without integer overflows, stack overflows and other caveats.

Previous article Fast Factorial has working solution

that we might use.

```
(defn ! [n]
(reduce *' (range 1 (inc n))))
```

Now, calculate the sum of digits, the same function that we used in

Clojure Euler: Problem 008 and

Clojure Euler: Problem 016

```
(defn sum-of-digits [n]
(reduce + (map #(- (int %) 48) (seq (str n)))))
```

And the final line

```
(sum-of-digits (! 100))
```

Simple enough, huh?

**P.S.** The functions `sum-of-digits`

, `count-digits`

and similar used often

and look very ugly, so I decided to create a separate set of functions (*library?*)

which I can refer. It should be a set of common mathematic functions, including

different sequences, sums, converters, interesting numbers. You might use it too.

Welcome to numberto!

Source: Mykhailo Kozik

## Leave a Reply