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.
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
.