I've been working on the problems on the Project Euler site off and on for about a year now (as are some of my friends). They are a lot of fun for anyone who likes to program and has an interest in algorithm design and optimization. As their site says…
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve.
I've been working the problems in order and (as I write this) I have completed 68 out of 159, or 43%. I've done each one using Common LISP because when I started I was interested in learning LISP and I thought it would be a great way to help me learn – and it has been.
It is usually not too hard to devise a brute force solution, but the idea is to find a more elegant solution that will run in under one minute. And when you accomplish this task it is very fulfilling.
Mathematicians have tried in vain to this day to discover some order in the sequence of prime numbers, and we have reason to believe that it is a mystery into which the human mind will never penetrate.
– Leonhard Euler