To quote its own homepage: "Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems."
The problems start off simple enough; Problem 1 only asks for the sum of all multiples of 3 and 5 below 1000. However, the difficulty rapidly increases after the first fifty problems, and clever application of advanced mathematical concepts is almost always necessary. Some of the hardest problems I've solved include:
I started solving problems in late 2014 and basically never stopped. What began as a way to teach myself Python has become my nerdiest pastime by far. I've significantly broadened and deepened my knowledge of both mathematics and algorithms through solving these problems.
Project Euler has more than 1.2 million members from across every country on Earth (except Vatican City). After an extremely productive 2023, I rank among the top 150 solvers worldwide.
Project Euler's code of conduct prohibits sharing solutions for all problems beyond the first hundred. Their reasoning — which I agree with — is that while researching the concepts behind problems is only proper, looking up solutions outright is antithetical to learning. However, the first hundred problems are an exception to this rule: the skills (in both math and coding) needed to solve them can be thought of as building blocks for the more advanced problems, making them a sort of extended tutorial. As such, I've compiled my approaches to these early problems below.
This repository of solutions is still incomplete; I'll be adding to it when I find the time.