This repository contains solutions to problems from Project Euler, implemented in Python using Jupyter Notebooks. Each notebook includes the problem description, a detailed explanation of the solution, and the Python implementation. The goal is to provide clear, well-documented solutions that are easy to understand and reusable.
I started this repository as a way to challenge myself and improve my problem-solving skills in mathematics and programming. Project Euler is a treasure trove of fascinating problems that combine mathematical theory with algorithmic thinking, and solving them has been an excellent way to:
- Deepen my understanding of mathematics: Most of the problems require knowledge of number theory, combinatorics, geometry, and other mathematical concepts.
- Enhance my programming skills: Implementing efficient algorithms in Python has helped me learn new techniques and improve my coding practices.
- Build a portfolio: Sharing my solutions publicly allows me to showcase my skills and contribute to the learning of others.
- Enjoy the process: Solving these problems is both fun and rewarding, as each solution brings a sense of accomplishment.
This repository is also a way to document my journey through the Project Euler archive, share my solutions with others who may be tackling the same problems, and help me stay accountable and motivated to keep solving problems consistently.
The solutions are organized into folders, each containing up to 50 problems for better navigation:
project-euler-solutions/
├── solutions/
│ ├── 001 - 050/
│ │ ├── 001.ipynb
│ │ ├── 002.ipynb
│ │ └── ...
│ ├── 051 - 100/
│ │ ├── 051.ipynb
│ │ ├── 052.ipynb
│ │ └── ...
│ ├── ...
│ └── 901 - 947/
│ ├── 901.ipynb
│ ├── 902.ipynb
│ └── ...
│ └── bonus/
│ └── ...
├── template.ipynb
├── README.md
└── LICENSE
-
Problem Descriptions:
- Each notebook begins with the problem description and a link to the problem on Project Euler.
-
Detailed Explanations:
- Step-by-step explanations of the solution approach, including mathematical insights and algorithmic techniques.
-
Python Implementations:
- Clean, well-commented Python code for solving each problem.
-
Tags and Categorization:
- Problems are tagged with relevant topics (e.g.,
math,number-theory,dynamic-programming) for easy navigation.
- Problems are tagged with relevant topics (e.g.,
- I didn't manage to solve some problems, but I commited the thought process in case I every try to solve them again; these problems are marked as
[wip] problem_id.ipynb - The first 50 problems are mostly solved in python files because i decided to start this process after going through them, so don't expect to see explainations for them (they're pretty easy regardless)
- If you wish to add me on your friends list on Project Euler, my friend key is
1880912_Gjh7YRYicdk41NkAfPgAZuC3mseyi0UB
