# Project Euler in Clojure – Problem 1

In trying to learn Clojure and wrap my head around good functional programming, and hoping to learn more idiomatic Clojure, I have started working through the Project Euler problems. In doing this, I have also setup a repository on github.com to keep track of my progress, which can be found at https://github.com/stevenproctor/project-euler-clojure.

Problem 1 of Project Euler is described as:

`Add all the natural numbers below one thousand that are multiples of 3 or 5.`

The solution I came up with is:

```(defn problem1 []
(reduce + (filter #(or (zero? (rem % 3)) (zero? (rem % 5))) (range 1000))))
```

I take the range of all numbers from 1 to 999, filter out those numbers evenly divisible by 3 or 5, and then reduce/apply the addition operator to that sequence of numbers.

I would love comments and suggestions on my solution to this problem, and if there are tweaks to make it more Clojure-ish.

**Updated**
Here is my approach to Problem 2 in Clojure.

–Proctor

## 2 thoughts on “Project Euler in Clojure – Problem 1”

This site uses Akismet to reduce spam. Learn how your comment data is processed.