Project Euler: Road to 250

2022/05/01

What is Project Euler?

Quoting the Wikipedia page,

Project Euler (named after Leonhard Euler) is a website dedicated to a series of computational problems intended to be solved with computer programs. The project attracts adults and students interested in mathematics and computer programming.

Simply put - a website with maths flavored puzzles that can be solved using computer programs. The entire website is a community effort, with members donating new puzzles as well as money. It currently has over 1 million registered users and over 50K active users.

Road to solving 250 puzzles

First steps

Around early 2013, I had come across the world of programming competitions and websites such as Codechef, Topcoder and Codeforces. I did not have the required math background for solving some of the problems on these sites, and someone suggested that I try solving Project Euler problems to improve my math skills. The format seemed slightly weird - you only need to submit the answer and not the associated code.

On March 15th 2013, I signed up and started working on the famous problem #1 using a computer program. I copy pasted the output of my code to the website textbox and voila! I had solved my first problem on the website. The big green tick felt great - so much that I sat down and solved around 10 problems that day.

Initial grind

The first year of solving problems was fairly brutal. I was neither good at maths or programming. I would try to pick easy problems and write brute force solutions and hope it would give an output within a few minutes. The lack of knowledge was very frustrating until one day I came across a blog around project euler solutions - mathblog.dk. The author would solve puzzles on the website and add a detailed explanation of the solution in the blog. For a long time, I frequented the blog to learn new algorithms or math and programming tricks. I made it a point to write the solution locally (even if the idea was entirely the same as the blogpost) to get some practice and confidence. I somehow managed to solve 70-80 problems by the end of 2014.

Picking up pace

By the end of 2014, I had learnt some basic algorithms and started spending a lot of time in programming competitions. I was 100% committed to my goal of going to ACM ICPC World Finals from India. Indian regionals do have 1-2 math questions every year, so I made sure to keep practicing on Project Euler to learn new math algorithms and techniques. I also made friends with fellow Indians who frequented the website - discussing algorithms, puzzles and solutions. The discussions would bring out weird algorithms which were beneficial in solving harder problems – for example, the prime counting algorithm.

By the end of 2015, my efforts were paying off. I had solved ~150 problems and the math background helped me win some programming competitions as well. I was still looking to solve at least 200 problems, and write an answer to a famous Quora question. Finally, in April 2016 (3 years since I first solved a problem), I managed to solve my 200th problem!

From 200 to 250

I had stopped solving puzzles on the website once I had reached 200 - most of the unsolved questions were hard for me. I would come back to it from time to time (as you can see from the graph below) but nothing consistently.

In Dec 2021, I took part in advent of code for the first time and the format brought back memories of Project Euler. I was on vacation for most part of Dec and started solving some simpler puzzles. Every month I would try to solve 5-10 problems over the weekend to try and reach the 250 solved mark.

And today, 1st May 2022, I finally reached the 250 solved mark. I am ~1.5kth person to cross 250 problems on the website out of 1.03M users.

Problems solved by year

Easy or hard, every problem brings the same feeling of satisfaction on seeing the green tick. I consider myself soft retired from the platform now to focus on other areas of life and computer science - hopefully the next stuff would be as exciting as Project Euler.

Thank you for reading this post! You can add me as a friend on Project Euler using my friend key 438619_54f86ce196b18e05096b490529524237.