Project Euler is a series of mathematical and programming challenges. I came across it in Jan 2007 while looking for interesting recreational problems. Many of the problems are number theoretical and almost all require writing computer programs to solve. Some problems can be solved by brute force but only after an incredibly long period of time. For such problems, the fun is to come up with efficient algorithms to produce solutions quickly.I have done reasonably well, having solved 158 problems as of 20070730. Problem 152 was an especially nice one – its description is simple but it had me wandering in the darkness for 3 days before I finally saw the light! If you have an account with Project Euler, you can log in and view my current progress here.
Currently I am giving myself a break from Project Euler to concentrate on more important things.
Join in the fun!
If you are interested in number theory or trying to learn a new programming language, Project Euler is a great place to practice your problem solving and programming skills. Once you solve a problem, you can read the Forum posting to learn how other people solved it.
Tips for the enthusiasts
Familiarity with topics like Diophantine Equations, Pell’s Equation (see this PDF I found on AOL), Pythagorean triplets, continued fractions and linear recurrence relations will help you go a long way. It is also convenient to use a programming language that supports multi-precision large numbers for some problems. My personal choice of language is Python – but hey, that’s just my preference. There is no best language that can solve every problem in the world. When I need speed (and because I need to practice the language), I often use C or C++ too.