diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
index 500b737c70e3..e336f697708c 100644
--- a/.github/workflows/codespell.yml
+++ b/.github/workflows/codespell.yml
@@ -10,7 +10,7 @@ jobs:
       - uses: actions/setup-python@v2
       - run: pip install codespell
       - run: |
-          SKIP="./.*,./other/dictionary.txt,./other/words,./project_euler/problem_22/p022_names.txt"
+          SKIP="./.*,./other/dictionary.txt,./other/words,./project_euler/problem_022/p022_names.txt"
           codespell --ignore-words-list=ans,fo,followings,hist,iff,secant,som,tim --skip=$SKIP --quiet-level=2
       - name: Codespell comment
         if: ${{ failure() }}
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 2fbb9cb9bdb2..01da6cad0335 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -43,13 +43,13 @@ repos:
       - id: codespell
         args:
           - --ignore-words-list=ans,fo,followings,hist,iff,secant,som,tim
-          - --skip="./.*,./other/dictionary.txt,./other/words,./project_euler/problem_22/p022_names.txt"
+          - --skip="./.*,./other/dictionary.txt,./other/words,./project_euler/problem_022/p022_names.txt"
           - --quiet-level=2
         exclude: |
           (?x)^(
               other/dictionary.txt |
               other/words |
-              project_euler/problem_22/p022_names.txt
+              project_euler/problem_022/p022_names.txt
           )$
   - repo: local
     hooks:
diff --git a/project_euler/problem_01/__init__.py b/project_euler/problem_001/__init__.py
similarity index 100%
rename from project_euler/problem_01/__init__.py
rename to project_euler/problem_001/__init__.py
diff --git a/project_euler/problem_01/sol1.py b/project_euler/problem_001/sol1.py
similarity index 100%
rename from project_euler/problem_01/sol1.py
rename to project_euler/problem_001/sol1.py
diff --git a/project_euler/problem_01/sol2.py b/project_euler/problem_001/sol2.py
similarity index 100%
rename from project_euler/problem_01/sol2.py
rename to project_euler/problem_001/sol2.py
diff --git a/project_euler/problem_01/sol3.py b/project_euler/problem_001/sol3.py
similarity index 100%
rename from project_euler/problem_01/sol3.py
rename to project_euler/problem_001/sol3.py
diff --git a/project_euler/problem_01/sol4.py b/project_euler/problem_001/sol4.py
similarity index 100%
rename from project_euler/problem_01/sol4.py
rename to project_euler/problem_001/sol4.py
diff --git a/project_euler/problem_01/sol5.py b/project_euler/problem_001/sol5.py
similarity index 100%
rename from project_euler/problem_01/sol5.py
rename to project_euler/problem_001/sol5.py
diff --git a/project_euler/problem_01/sol6.py b/project_euler/problem_001/sol6.py
similarity index 100%
rename from project_euler/problem_01/sol6.py
rename to project_euler/problem_001/sol6.py
diff --git a/project_euler/problem_01/sol7.py b/project_euler/problem_001/sol7.py
similarity index 100%
rename from project_euler/problem_01/sol7.py
rename to project_euler/problem_001/sol7.py
diff --git a/project_euler/problem_02/__init__.py b/project_euler/problem_002/__init__.py
similarity index 100%
rename from project_euler/problem_02/__init__.py
rename to project_euler/problem_002/__init__.py
diff --git a/project_euler/problem_02/sol1.py b/project_euler/problem_002/sol1.py
similarity index 100%
rename from project_euler/problem_02/sol1.py
rename to project_euler/problem_002/sol1.py
diff --git a/project_euler/problem_02/sol2.py b/project_euler/problem_002/sol2.py
similarity index 100%
rename from project_euler/problem_02/sol2.py
rename to project_euler/problem_002/sol2.py
diff --git a/project_euler/problem_02/sol3.py b/project_euler/problem_002/sol3.py
similarity index 100%
rename from project_euler/problem_02/sol3.py
rename to project_euler/problem_002/sol3.py
diff --git a/project_euler/problem_02/sol4.py b/project_euler/problem_002/sol4.py
similarity index 100%
rename from project_euler/problem_02/sol4.py
rename to project_euler/problem_002/sol4.py
diff --git a/project_euler/problem_02/sol5.py b/project_euler/problem_002/sol5.py
similarity index 100%
rename from project_euler/problem_02/sol5.py
rename to project_euler/problem_002/sol5.py
diff --git a/project_euler/problem_03/__init__.py b/project_euler/problem_003/__init__.py
similarity index 100%
rename from project_euler/problem_03/__init__.py
rename to project_euler/problem_003/__init__.py
diff --git a/project_euler/problem_03/sol1.py b/project_euler/problem_003/sol1.py
similarity index 100%
rename from project_euler/problem_03/sol1.py
rename to project_euler/problem_003/sol1.py
diff --git a/project_euler/problem_03/sol2.py b/project_euler/problem_003/sol2.py
similarity index 100%
rename from project_euler/problem_03/sol2.py
rename to project_euler/problem_003/sol2.py
diff --git a/project_euler/problem_03/sol3.py b/project_euler/problem_003/sol3.py
similarity index 100%
rename from project_euler/problem_03/sol3.py
rename to project_euler/problem_003/sol3.py
diff --git a/project_euler/problem_04/__init__.py b/project_euler/problem_004/__init__.py
similarity index 100%
rename from project_euler/problem_04/__init__.py
rename to project_euler/problem_004/__init__.py
diff --git a/project_euler/problem_04/sol1.py b/project_euler/problem_004/sol1.py
similarity index 100%
rename from project_euler/problem_04/sol1.py
rename to project_euler/problem_004/sol1.py
diff --git a/project_euler/problem_04/sol2.py b/project_euler/problem_004/sol2.py
similarity index 100%
rename from project_euler/problem_04/sol2.py
rename to project_euler/problem_004/sol2.py
diff --git a/project_euler/problem_05/__init__.py b/project_euler/problem_005/__init__.py
similarity index 100%
rename from project_euler/problem_05/__init__.py
rename to project_euler/problem_005/__init__.py
diff --git a/project_euler/problem_05/sol1.py b/project_euler/problem_005/sol1.py
similarity index 100%
rename from project_euler/problem_05/sol1.py
rename to project_euler/problem_005/sol1.py
diff --git a/project_euler/problem_05/sol2.py b/project_euler/problem_005/sol2.py
similarity index 100%
rename from project_euler/problem_05/sol2.py
rename to project_euler/problem_005/sol2.py
diff --git a/project_euler/problem_06/__init__.py b/project_euler/problem_006/__init__.py
similarity index 100%
rename from project_euler/problem_06/__init__.py
rename to project_euler/problem_006/__init__.py
diff --git a/project_euler/problem_06/sol1.py b/project_euler/problem_006/sol1.py
similarity index 100%
rename from project_euler/problem_06/sol1.py
rename to project_euler/problem_006/sol1.py
diff --git a/project_euler/problem_06/sol2.py b/project_euler/problem_006/sol2.py
similarity index 100%
rename from project_euler/problem_06/sol2.py
rename to project_euler/problem_006/sol2.py
diff --git a/project_euler/problem_06/sol3.py b/project_euler/problem_006/sol3.py
similarity index 100%
rename from project_euler/problem_06/sol3.py
rename to project_euler/problem_006/sol3.py
diff --git a/project_euler/problem_06/sol4.py b/project_euler/problem_006/sol4.py
similarity index 100%
rename from project_euler/problem_06/sol4.py
rename to project_euler/problem_006/sol4.py
diff --git a/project_euler/problem_07/__init__.py b/project_euler/problem_007/__init__.py
similarity index 100%
rename from project_euler/problem_07/__init__.py
rename to project_euler/problem_007/__init__.py
diff --git a/project_euler/problem_07/sol1.py b/project_euler/problem_007/sol1.py
similarity index 100%
rename from project_euler/problem_07/sol1.py
rename to project_euler/problem_007/sol1.py
diff --git a/project_euler/problem_07/sol2.py b/project_euler/problem_007/sol2.py
similarity index 100%
rename from project_euler/problem_07/sol2.py
rename to project_euler/problem_007/sol2.py
diff --git a/project_euler/problem_07/sol3.py b/project_euler/problem_007/sol3.py
similarity index 100%
rename from project_euler/problem_07/sol3.py
rename to project_euler/problem_007/sol3.py
diff --git a/project_euler/problem_08/__init__.py b/project_euler/problem_008/__init__.py
similarity index 100%
rename from project_euler/problem_08/__init__.py
rename to project_euler/problem_008/__init__.py
diff --git a/project_euler/problem_08/sol1.py b/project_euler/problem_008/sol1.py
similarity index 100%
rename from project_euler/problem_08/sol1.py
rename to project_euler/problem_008/sol1.py
diff --git a/project_euler/problem_08/sol2.py b/project_euler/problem_008/sol2.py
similarity index 100%
rename from project_euler/problem_08/sol2.py
rename to project_euler/problem_008/sol2.py
diff --git a/project_euler/problem_08/sol3.py b/project_euler/problem_008/sol3.py
similarity index 100%
rename from project_euler/problem_08/sol3.py
rename to project_euler/problem_008/sol3.py
diff --git a/project_euler/problem_09/__init__.py b/project_euler/problem_009/__init__.py
similarity index 100%
rename from project_euler/problem_09/__init__.py
rename to project_euler/problem_009/__init__.py
diff --git a/project_euler/problem_09/sol1.py b/project_euler/problem_009/sol1.py
similarity index 100%
rename from project_euler/problem_09/sol1.py
rename to project_euler/problem_009/sol1.py
diff --git a/project_euler/problem_09/sol2.py b/project_euler/problem_009/sol2.py
similarity index 100%
rename from project_euler/problem_09/sol2.py
rename to project_euler/problem_009/sol2.py
diff --git a/project_euler/problem_09/sol3.py b/project_euler/problem_009/sol3.py
similarity index 100%
rename from project_euler/problem_09/sol3.py
rename to project_euler/problem_009/sol3.py
diff --git a/project_euler/problem_10/__init__.py b/project_euler/problem_010/__init__.py
similarity index 100%
rename from project_euler/problem_10/__init__.py
rename to project_euler/problem_010/__init__.py
diff --git a/project_euler/problem_10/sol1.py b/project_euler/problem_010/sol1.py
similarity index 100%
rename from project_euler/problem_10/sol1.py
rename to project_euler/problem_010/sol1.py
diff --git a/project_euler/problem_10/sol2.py b/project_euler/problem_010/sol2.py
similarity index 100%
rename from project_euler/problem_10/sol2.py
rename to project_euler/problem_010/sol2.py
diff --git a/project_euler/problem_10/sol3.py b/project_euler/problem_010/sol3.py
similarity index 100%
rename from project_euler/problem_10/sol3.py
rename to project_euler/problem_010/sol3.py
diff --git a/project_euler/problem_11/__init__.py b/project_euler/problem_011/__init__.py
similarity index 100%
rename from project_euler/problem_11/__init__.py
rename to project_euler/problem_011/__init__.py
diff --git a/project_euler/problem_11/grid.txt b/project_euler/problem_011/grid.txt
similarity index 100%
rename from project_euler/problem_11/grid.txt
rename to project_euler/problem_011/grid.txt
diff --git a/project_euler/problem_11/sol1.py b/project_euler/problem_011/sol1.py
similarity index 100%
rename from project_euler/problem_11/sol1.py
rename to project_euler/problem_011/sol1.py
diff --git a/project_euler/problem_11/sol2.py b/project_euler/problem_011/sol2.py
similarity index 100%
rename from project_euler/problem_11/sol2.py
rename to project_euler/problem_011/sol2.py
diff --git a/project_euler/problem_12/__init__.py b/project_euler/problem_012/__init__.py
similarity index 100%
rename from project_euler/problem_12/__init__.py
rename to project_euler/problem_012/__init__.py
diff --git a/project_euler/problem_12/sol1.py b/project_euler/problem_012/sol1.py
similarity index 100%
rename from project_euler/problem_12/sol1.py
rename to project_euler/problem_012/sol1.py
diff --git a/project_euler/problem_12/sol2.py b/project_euler/problem_012/sol2.py
similarity index 100%
rename from project_euler/problem_12/sol2.py
rename to project_euler/problem_012/sol2.py
diff --git a/project_euler/problem_13/__init__.py b/project_euler/problem_013/__init__.py
similarity index 100%
rename from project_euler/problem_13/__init__.py
rename to project_euler/problem_013/__init__.py
diff --git a/project_euler/problem_13/num.txt b/project_euler/problem_013/num.txt
similarity index 100%
rename from project_euler/problem_13/num.txt
rename to project_euler/problem_013/num.txt
diff --git a/project_euler/problem_13/sol1.py b/project_euler/problem_013/sol1.py
similarity index 100%
rename from project_euler/problem_13/sol1.py
rename to project_euler/problem_013/sol1.py
diff --git a/project_euler/problem_14/__init__.py b/project_euler/problem_014/__init__.py
similarity index 100%
rename from project_euler/problem_14/__init__.py
rename to project_euler/problem_014/__init__.py
diff --git a/project_euler/problem_14/sol1.py b/project_euler/problem_014/sol1.py
similarity index 100%
rename from project_euler/problem_14/sol1.py
rename to project_euler/problem_014/sol1.py
diff --git a/project_euler/problem_14/sol2.py b/project_euler/problem_014/sol2.py
similarity index 100%
rename from project_euler/problem_14/sol2.py
rename to project_euler/problem_014/sol2.py
diff --git a/project_euler/problem_15/__init__.py b/project_euler/problem_015/__init__.py
similarity index 100%
rename from project_euler/problem_15/__init__.py
rename to project_euler/problem_015/__init__.py
diff --git a/project_euler/problem_15/sol1.py b/project_euler/problem_015/sol1.py
similarity index 100%
rename from project_euler/problem_15/sol1.py
rename to project_euler/problem_015/sol1.py
diff --git a/project_euler/problem_16/__init__.py b/project_euler/problem_016/__init__.py
similarity index 100%
rename from project_euler/problem_16/__init__.py
rename to project_euler/problem_016/__init__.py
diff --git a/project_euler/problem_16/sol1.py b/project_euler/problem_016/sol1.py
similarity index 100%
rename from project_euler/problem_16/sol1.py
rename to project_euler/problem_016/sol1.py
diff --git a/project_euler/problem_16/sol2.py b/project_euler/problem_016/sol2.py
similarity index 100%
rename from project_euler/problem_16/sol2.py
rename to project_euler/problem_016/sol2.py
diff --git a/project_euler/problem_17/__init__.py b/project_euler/problem_017/__init__.py
similarity index 100%
rename from project_euler/problem_17/__init__.py
rename to project_euler/problem_017/__init__.py
diff --git a/project_euler/problem_17/sol1.py b/project_euler/problem_017/sol1.py
similarity index 100%
rename from project_euler/problem_17/sol1.py
rename to project_euler/problem_017/sol1.py
diff --git a/project_euler/problem_18/__init__.py b/project_euler/problem_018/__init__.py
similarity index 100%
rename from project_euler/problem_18/__init__.py
rename to project_euler/problem_018/__init__.py
diff --git a/project_euler/problem_18/solution.py b/project_euler/problem_018/solution.py
similarity index 100%
rename from project_euler/problem_18/solution.py
rename to project_euler/problem_018/solution.py
diff --git a/project_euler/problem_18/triangle.txt b/project_euler/problem_018/triangle.txt
similarity index 100%
rename from project_euler/problem_18/triangle.txt
rename to project_euler/problem_018/triangle.txt
diff --git a/project_euler/problem_19/__init__.py b/project_euler/problem_019/__init__.py
similarity index 100%
rename from project_euler/problem_19/__init__.py
rename to project_euler/problem_019/__init__.py
diff --git a/project_euler/problem_19/sol1.py b/project_euler/problem_019/sol1.py
similarity index 100%
rename from project_euler/problem_19/sol1.py
rename to project_euler/problem_019/sol1.py
diff --git a/project_euler/problem_20/__init__.py b/project_euler/problem_020/__init__.py
similarity index 100%
rename from project_euler/problem_20/__init__.py
rename to project_euler/problem_020/__init__.py
diff --git a/project_euler/problem_20/sol1.py b/project_euler/problem_020/sol1.py
similarity index 100%
rename from project_euler/problem_20/sol1.py
rename to project_euler/problem_020/sol1.py
diff --git a/project_euler/problem_20/sol2.py b/project_euler/problem_020/sol2.py
similarity index 100%
rename from project_euler/problem_20/sol2.py
rename to project_euler/problem_020/sol2.py
diff --git a/project_euler/problem_20/sol3.py b/project_euler/problem_020/sol3.py
similarity index 100%
rename from project_euler/problem_20/sol3.py
rename to project_euler/problem_020/sol3.py
diff --git a/project_euler/problem_20/sol4.py b/project_euler/problem_020/sol4.py
similarity index 100%
rename from project_euler/problem_20/sol4.py
rename to project_euler/problem_020/sol4.py
diff --git a/project_euler/problem_21/__init__.py b/project_euler/problem_021/__init__.py
similarity index 100%
rename from project_euler/problem_21/__init__.py
rename to project_euler/problem_021/__init__.py
diff --git a/project_euler/problem_21/sol1.py b/project_euler/problem_021/sol1.py
similarity index 100%
rename from project_euler/problem_21/sol1.py
rename to project_euler/problem_021/sol1.py
diff --git a/project_euler/problem_22/__init__.py b/project_euler/problem_022/__init__.py
similarity index 100%
rename from project_euler/problem_22/__init__.py
rename to project_euler/problem_022/__init__.py
diff --git a/project_euler/problem_22/p022_names.txt b/project_euler/problem_022/p022_names.txt
similarity index 100%
rename from project_euler/problem_22/p022_names.txt
rename to project_euler/problem_022/p022_names.txt
diff --git a/project_euler/problem_22/sol1.py b/project_euler/problem_022/sol1.py
similarity index 100%
rename from project_euler/problem_22/sol1.py
rename to project_euler/problem_022/sol1.py
diff --git a/project_euler/problem_22/sol2.py b/project_euler/problem_022/sol2.py
similarity index 100%
rename from project_euler/problem_22/sol2.py
rename to project_euler/problem_022/sol2.py
diff --git a/project_euler/problem_23/__init__.py b/project_euler/problem_023/__init__.py
similarity index 100%
rename from project_euler/problem_23/__init__.py
rename to project_euler/problem_023/__init__.py
diff --git a/project_euler/problem_23/sol1.py b/project_euler/problem_023/sol1.py
similarity index 100%
rename from project_euler/problem_23/sol1.py
rename to project_euler/problem_023/sol1.py
diff --git a/project_euler/problem_24/__init__.py b/project_euler/problem_024/__init__.py
similarity index 100%
rename from project_euler/problem_24/__init__.py
rename to project_euler/problem_024/__init__.py
diff --git a/project_euler/problem_24/sol1.py b/project_euler/problem_024/sol1.py
similarity index 100%
rename from project_euler/problem_24/sol1.py
rename to project_euler/problem_024/sol1.py
diff --git a/project_euler/problem_25/__init__.py b/project_euler/problem_025/__init__.py
similarity index 100%
rename from project_euler/problem_25/__init__.py
rename to project_euler/problem_025/__init__.py
diff --git a/project_euler/problem_25/sol1.py b/project_euler/problem_025/sol1.py
similarity index 100%
rename from project_euler/problem_25/sol1.py
rename to project_euler/problem_025/sol1.py
diff --git a/project_euler/problem_25/sol2.py b/project_euler/problem_025/sol2.py
similarity index 100%
rename from project_euler/problem_25/sol2.py
rename to project_euler/problem_025/sol2.py
diff --git a/project_euler/problem_25/sol3.py b/project_euler/problem_025/sol3.py
similarity index 100%
rename from project_euler/problem_25/sol3.py
rename to project_euler/problem_025/sol3.py
diff --git a/project_euler/problem_26/__init__.py b/project_euler/problem_026/__init__.py
similarity index 100%
rename from project_euler/problem_26/__init__.py
rename to project_euler/problem_026/__init__.py
diff --git a/project_euler/problem_26/sol1.py b/project_euler/problem_026/sol1.py
similarity index 100%
rename from project_euler/problem_26/sol1.py
rename to project_euler/problem_026/sol1.py
diff --git a/project_euler/problem_27/__init__.py b/project_euler/problem_027/__init__.py
similarity index 100%
rename from project_euler/problem_27/__init__.py
rename to project_euler/problem_027/__init__.py
diff --git a/project_euler/problem_27/sol1.py b/project_euler/problem_027/sol1.py
similarity index 100%
rename from project_euler/problem_27/sol1.py
rename to project_euler/problem_027/sol1.py
diff --git a/project_euler/problem_28/__init__.py b/project_euler/problem_028/__init__.py
similarity index 100%
rename from project_euler/problem_28/__init__.py
rename to project_euler/problem_028/__init__.py
diff --git a/project_euler/problem_28/sol1.py b/project_euler/problem_028/sol1.py
similarity index 100%
rename from project_euler/problem_28/sol1.py
rename to project_euler/problem_028/sol1.py
diff --git a/project_euler/problem_29/__init__.py b/project_euler/problem_029/__init__.py
similarity index 100%
rename from project_euler/problem_29/__init__.py
rename to project_euler/problem_029/__init__.py
diff --git a/project_euler/problem_29/sol1.py b/project_euler/problem_029/sol1.py
similarity index 100%
rename from project_euler/problem_29/sol1.py
rename to project_euler/problem_029/sol1.py
diff --git a/project_euler/problem_30/__init__.py b/project_euler/problem_030/__init__.py
similarity index 100%
rename from project_euler/problem_30/__init__.py
rename to project_euler/problem_030/__init__.py
diff --git a/project_euler/problem_30/sol1.py b/project_euler/problem_030/sol1.py
similarity index 100%
rename from project_euler/problem_30/sol1.py
rename to project_euler/problem_030/sol1.py
diff --git a/project_euler/problem_31/__init__.py b/project_euler/problem_031/__init__.py
similarity index 100%
rename from project_euler/problem_31/__init__.py
rename to project_euler/problem_031/__init__.py
diff --git a/project_euler/problem_31/sol1.py b/project_euler/problem_031/sol1.py
similarity index 100%
rename from project_euler/problem_31/sol1.py
rename to project_euler/problem_031/sol1.py
diff --git a/project_euler/problem_31/sol2.py b/project_euler/problem_031/sol2.py
similarity index 100%
rename from project_euler/problem_31/sol2.py
rename to project_euler/problem_031/sol2.py
diff --git a/project_euler/problem_32/__init__.py b/project_euler/problem_032/__init__.py
similarity index 100%
rename from project_euler/problem_32/__init__.py
rename to project_euler/problem_032/__init__.py
diff --git a/project_euler/problem_32/sol32.py b/project_euler/problem_032/sol32.py
similarity index 100%
rename from project_euler/problem_32/sol32.py
rename to project_euler/problem_032/sol32.py
diff --git a/project_euler/problem_33/__init__.py b/project_euler/problem_033/__init__.py
similarity index 100%
rename from project_euler/problem_33/__init__.py
rename to project_euler/problem_033/__init__.py
diff --git a/project_euler/problem_33/sol1.py b/project_euler/problem_033/sol1.py
similarity index 100%
rename from project_euler/problem_33/sol1.py
rename to project_euler/problem_033/sol1.py
diff --git a/project_euler/problem_34/__init__.py b/project_euler/problem_034/__init__.py
similarity index 100%
rename from project_euler/problem_34/__init__.py
rename to project_euler/problem_034/__init__.py
diff --git a/project_euler/problem_34/sol1.py b/project_euler/problem_034/sol1.py
similarity index 100%
rename from project_euler/problem_34/sol1.py
rename to project_euler/problem_034/sol1.py
diff --git a/project_euler/problem_35/__init__.py b/project_euler/problem_035/__init__.py
similarity index 100%
rename from project_euler/problem_35/__init__.py
rename to project_euler/problem_035/__init__.py
diff --git a/project_euler/problem_35/sol1.py b/project_euler/problem_035/sol1.py
similarity index 100%
rename from project_euler/problem_35/sol1.py
rename to project_euler/problem_035/sol1.py
diff --git a/project_euler/problem_36/__init__.py b/project_euler/problem_036/__init__.py
similarity index 100%
rename from project_euler/problem_36/__init__.py
rename to project_euler/problem_036/__init__.py
diff --git a/project_euler/problem_36/sol1.py b/project_euler/problem_036/sol1.py
similarity index 100%
rename from project_euler/problem_36/sol1.py
rename to project_euler/problem_036/sol1.py
diff --git a/project_euler/problem_37/__init__.py b/project_euler/problem_037/__init__.py
similarity index 100%
rename from project_euler/problem_37/__init__.py
rename to project_euler/problem_037/__init__.py
diff --git a/project_euler/problem_37/sol1.py b/project_euler/problem_037/sol1.py
similarity index 100%
rename from project_euler/problem_37/sol1.py
rename to project_euler/problem_037/sol1.py
diff --git a/project_euler/problem_39/__init__.py b/project_euler/problem_039/__init__.py
similarity index 100%
rename from project_euler/problem_39/__init__.py
rename to project_euler/problem_039/__init__.py
diff --git a/project_euler/problem_39/sol1.py b/project_euler/problem_039/sol1.py
similarity index 100%
rename from project_euler/problem_39/sol1.py
rename to project_euler/problem_039/sol1.py
diff --git a/project_euler/problem_40/__init__.py b/project_euler/problem_040/__init__.py
similarity index 100%
rename from project_euler/problem_40/__init__.py
rename to project_euler/problem_040/__init__.py
diff --git a/project_euler/problem_40/sol1.py b/project_euler/problem_040/sol1.py
similarity index 100%
rename from project_euler/problem_40/sol1.py
rename to project_euler/problem_040/sol1.py
diff --git a/project_euler/problem_41/__init__.py b/project_euler/problem_041/__init__.py
similarity index 100%
rename from project_euler/problem_41/__init__.py
rename to project_euler/problem_041/__init__.py
diff --git a/project_euler/problem_41/sol1.py b/project_euler/problem_041/sol1.py
similarity index 100%
rename from project_euler/problem_41/sol1.py
rename to project_euler/problem_041/sol1.py
diff --git a/project_euler/problem_42/__init__.py b/project_euler/problem_042/__init__.py
similarity index 100%
rename from project_euler/problem_42/__init__.py
rename to project_euler/problem_042/__init__.py
diff --git a/project_euler/problem_42/solution42.py b/project_euler/problem_042/solution42.py
similarity index 100%
rename from project_euler/problem_42/solution42.py
rename to project_euler/problem_042/solution42.py
diff --git a/project_euler/problem_42/words.txt b/project_euler/problem_042/words.txt
similarity index 100%
rename from project_euler/problem_42/words.txt
rename to project_euler/problem_042/words.txt
diff --git a/project_euler/problem_43/__init__.py b/project_euler/problem_043/__init__.py
similarity index 100%
rename from project_euler/problem_43/__init__.py
rename to project_euler/problem_043/__init__.py
diff --git a/project_euler/problem_43/sol1.py b/project_euler/problem_043/sol1.py
similarity index 100%
rename from project_euler/problem_43/sol1.py
rename to project_euler/problem_043/sol1.py
diff --git a/project_euler/problem_44/__init__.py b/project_euler/problem_044/__init__.py
similarity index 100%
rename from project_euler/problem_44/__init__.py
rename to project_euler/problem_044/__init__.py
diff --git a/project_euler/problem_44/sol1.py b/project_euler/problem_044/sol1.py
similarity index 100%
rename from project_euler/problem_44/sol1.py
rename to project_euler/problem_044/sol1.py
diff --git a/project_euler/problem_45/__init__.py b/project_euler/problem_045/__init__.py
similarity index 100%
rename from project_euler/problem_45/__init__.py
rename to project_euler/problem_045/__init__.py
diff --git a/project_euler/problem_45/sol1.py b/project_euler/problem_045/sol1.py
similarity index 100%
rename from project_euler/problem_45/sol1.py
rename to project_euler/problem_045/sol1.py
diff --git a/project_euler/problem_46/__init__.py b/project_euler/problem_046/__init__.py
similarity index 100%
rename from project_euler/problem_46/__init__.py
rename to project_euler/problem_046/__init__.py
diff --git a/project_euler/problem_46/sol1.py b/project_euler/problem_046/sol1.py
similarity index 100%
rename from project_euler/problem_46/sol1.py
rename to project_euler/problem_046/sol1.py
diff --git a/project_euler/problem_47/__init__.py b/project_euler/problem_047/__init__.py
similarity index 100%
rename from project_euler/problem_47/__init__.py
rename to project_euler/problem_047/__init__.py
diff --git a/project_euler/problem_47/sol1.py b/project_euler/problem_047/sol1.py
similarity index 100%
rename from project_euler/problem_47/sol1.py
rename to project_euler/problem_047/sol1.py
diff --git a/project_euler/problem_48/__init__.py b/project_euler/problem_048/__init__.py
similarity index 100%
rename from project_euler/problem_48/__init__.py
rename to project_euler/problem_048/__init__.py
diff --git a/project_euler/problem_48/sol1.py b/project_euler/problem_048/sol1.py
similarity index 100%
rename from project_euler/problem_48/sol1.py
rename to project_euler/problem_048/sol1.py
diff --git a/project_euler/problem_49/__init__.py b/project_euler/problem_049/__init__.py
similarity index 100%
rename from project_euler/problem_49/__init__.py
rename to project_euler/problem_049/__init__.py
diff --git a/project_euler/problem_49/sol1.py b/project_euler/problem_049/sol1.py
similarity index 100%
rename from project_euler/problem_49/sol1.py
rename to project_euler/problem_049/sol1.py
diff --git a/project_euler/problem_51/__init__.py b/project_euler/problem_051/__init__.py
similarity index 100%
rename from project_euler/problem_51/__init__.py
rename to project_euler/problem_051/__init__.py
diff --git a/project_euler/problem_51/sol1.py b/project_euler/problem_051/sol1.py
similarity index 100%
rename from project_euler/problem_51/sol1.py
rename to project_euler/problem_051/sol1.py
diff --git a/project_euler/problem_52/__init__.py b/project_euler/problem_052/__init__.py
similarity index 100%
rename from project_euler/problem_52/__init__.py
rename to project_euler/problem_052/__init__.py
diff --git a/project_euler/problem_52/sol1.py b/project_euler/problem_052/sol1.py
similarity index 100%
rename from project_euler/problem_52/sol1.py
rename to project_euler/problem_052/sol1.py
diff --git a/project_euler/problem_53/__init__.py b/project_euler/problem_053/__init__.py
similarity index 100%
rename from project_euler/problem_53/__init__.py
rename to project_euler/problem_053/__init__.py
diff --git a/project_euler/problem_53/sol1.py b/project_euler/problem_053/sol1.py
similarity index 100%
rename from project_euler/problem_53/sol1.py
rename to project_euler/problem_053/sol1.py
diff --git a/project_euler/problem_54/__init__.py b/project_euler/problem_054/__init__.py
similarity index 100%
rename from project_euler/problem_54/__init__.py
rename to project_euler/problem_054/__init__.py
diff --git a/project_euler/problem_54/poker_hands.txt b/project_euler/problem_054/poker_hands.txt
similarity index 100%
rename from project_euler/problem_54/poker_hands.txt
rename to project_euler/problem_054/poker_hands.txt
diff --git a/project_euler/problem_54/sol1.py b/project_euler/problem_054/sol1.py
similarity index 100%
rename from project_euler/problem_54/sol1.py
rename to project_euler/problem_054/sol1.py
diff --git a/project_euler/problem_54/test_poker_hand.py b/project_euler/problem_054/test_poker_hand.py
similarity index 100%
rename from project_euler/problem_54/test_poker_hand.py
rename to project_euler/problem_054/test_poker_hand.py
diff --git a/project_euler/problem_55/__init__.py b/project_euler/problem_055/__init__.py
similarity index 100%
rename from project_euler/problem_55/__init__.py
rename to project_euler/problem_055/__init__.py
diff --git a/project_euler/problem_55/sol1.py b/project_euler/problem_055/sol1.py
similarity index 100%
rename from project_euler/problem_55/sol1.py
rename to project_euler/problem_055/sol1.py
diff --git a/project_euler/problem_56/__init__.py b/project_euler/problem_056/__init__.py
similarity index 100%
rename from project_euler/problem_56/__init__.py
rename to project_euler/problem_056/__init__.py
diff --git a/project_euler/problem_56/sol1.py b/project_euler/problem_056/sol1.py
similarity index 100%
rename from project_euler/problem_56/sol1.py
rename to project_euler/problem_056/sol1.py
diff --git a/project_euler/problem_62/__init__.py b/project_euler/problem_062/__init__.py
similarity index 100%
rename from project_euler/problem_62/__init__.py
rename to project_euler/problem_062/__init__.py
diff --git a/project_euler/problem_62/sol1.py b/project_euler/problem_062/sol1.py
similarity index 100%
rename from project_euler/problem_62/sol1.py
rename to project_euler/problem_062/sol1.py
diff --git a/project_euler/problem_63/__init__.py b/project_euler/problem_063/__init__.py
similarity index 100%
rename from project_euler/problem_63/__init__.py
rename to project_euler/problem_063/__init__.py
diff --git a/project_euler/problem_63/sol1.py b/project_euler/problem_063/sol1.py
similarity index 100%
rename from project_euler/problem_63/sol1.py
rename to project_euler/problem_063/sol1.py
diff --git a/project_euler/problem_67/__init__.py b/project_euler/problem_067/__init__.py
similarity index 100%
rename from project_euler/problem_67/__init__.py
rename to project_euler/problem_067/__init__.py
diff --git a/project_euler/problem_67/sol1.py b/project_euler/problem_067/sol1.py
similarity index 100%
rename from project_euler/problem_67/sol1.py
rename to project_euler/problem_067/sol1.py
diff --git a/project_euler/problem_67/triangle.txt b/project_euler/problem_067/triangle.txt
similarity index 100%
rename from project_euler/problem_67/triangle.txt
rename to project_euler/problem_067/triangle.txt
diff --git a/project_euler/problem_69/__init__.py b/project_euler/problem_069/__init__.py
similarity index 100%
rename from project_euler/problem_69/__init__.py
rename to project_euler/problem_069/__init__.py
diff --git a/project_euler/problem_69/sol1.py b/project_euler/problem_069/sol1.py
similarity index 100%
rename from project_euler/problem_69/sol1.py
rename to project_euler/problem_069/sol1.py
diff --git a/project_euler/problem_71/__init__.py b/project_euler/problem_071/__init__.py
similarity index 100%
rename from project_euler/problem_71/__init__.py
rename to project_euler/problem_071/__init__.py
diff --git a/project_euler/problem_71/sol1.py b/project_euler/problem_071/sol1.py
similarity index 100%
rename from project_euler/problem_71/sol1.py
rename to project_euler/problem_071/sol1.py
diff --git a/project_euler/problem_72/__init__.py b/project_euler/problem_072/__init__.py
similarity index 100%
rename from project_euler/problem_72/__init__.py
rename to project_euler/problem_072/__init__.py
diff --git a/project_euler/problem_72/sol1.py b/project_euler/problem_072/sol1.py
similarity index 100%
rename from project_euler/problem_72/sol1.py
rename to project_euler/problem_072/sol1.py
diff --git a/project_euler/problem_76/__init__.py b/project_euler/problem_076/__init__.py
similarity index 100%
rename from project_euler/problem_76/__init__.py
rename to project_euler/problem_076/__init__.py
diff --git a/project_euler/problem_76/sol1.py b/project_euler/problem_076/sol1.py
similarity index 100%
rename from project_euler/problem_76/sol1.py
rename to project_euler/problem_076/sol1.py
diff --git a/project_euler/problem_80/__init__.py b/project_euler/problem_080/__init__.py
similarity index 100%
rename from project_euler/problem_80/__init__.py
rename to project_euler/problem_080/__init__.py
diff --git a/project_euler/problem_80/sol1.py b/project_euler/problem_080/sol1.py
similarity index 100%
rename from project_euler/problem_80/sol1.py
rename to project_euler/problem_080/sol1.py
diff --git a/project_euler/problem_97/__init__.py b/project_euler/problem_097/__init__.py
similarity index 100%
rename from project_euler/problem_97/__init__.py
rename to project_euler/problem_097/__init__.py
diff --git a/project_euler/problem_97/sol1.py b/project_euler/problem_097/sol1.py
similarity index 100%
rename from project_euler/problem_97/sol1.py
rename to project_euler/problem_097/sol1.py
diff --git a/project_euler/problem_99/__init__.py b/project_euler/problem_099/__init__.py
similarity index 100%
rename from project_euler/problem_99/__init__.py
rename to project_euler/problem_099/__init__.py
diff --git a/project_euler/problem_99/base_exp.txt b/project_euler/problem_099/base_exp.txt
similarity index 100%
rename from project_euler/problem_99/base_exp.txt
rename to project_euler/problem_099/base_exp.txt
diff --git a/project_euler/problem_99/sol1.py b/project_euler/problem_099/sol1.py
similarity index 100%
rename from project_euler/problem_99/sol1.py
rename to project_euler/problem_099/sol1.py
diff --git a/project_euler/project_euler_answers.json b/project_euler/project_euler_answers.json
index 6889ad09703e..05c144d1e06a 100644
--- a/project_euler/project_euler_answers.json
+++ b/project_euler/project_euler_answers.json
@@ -1,103 +1,103 @@
 {
-  "01": "233168",
-  "02": "4613732",
-  "03": "6857",
-  "04": "906609",
-  "05": "232792560",
-  "06": "25164150",
-  "07": "104743",
-  "08": "23514624000",
-  "09": "31875000",
-  "10": "142913828922",
-  "11": "70600674",
-  "12": "76576500",
-  "13": "5537376230",
-  "14": "837799",
-  "15": "137846528820",
-  "16": "1366",
-  "17": "21124",
-  "18": "1074",
-  "19": "171",
-  "20": "648",
-  "21": "31626",
-  "22": "871198282",
-  "23": "4179871",
-  "24": "2783915460",
-  "25": "4782",
-  "26": "983",
-  "27": "-59231",
-  "28": "669171001",
-  "29": "9183",
-  "30": "443839",
-  "31": "73682",
-  "32": "45228",
-  "33": "100",
-  "34": "40730",
-  "35": "55",
-  "36": "872187",
-  "37": "748317",
-  "38": "932718654",
-  "39": "840",
-  "40": "210",
-  "41": "7652413",
-  "42": "162",
-  "43": "16695334890",
-  "44": "5482660",
-  "45": "1533776805",
-  "46": "5777",
-  "47": "134043",
-  "48": "9110846700",
-  "49": "296962999629",
-  "50": "997651",
-  "51": "121313",
-  "52": "142857",
-  "53": "4075",
-  "54": "376",
-  "55": "249",
-  "56": "972",
-  "57": "153",
-  "58": "26241",
-  "59": "129448",
-  "60": "26033",
-  "61": "28684",
-  "62": "127035954683",
-  "63": "49",
-  "64": "1322",
-  "65": "272",
-  "66": "661",
-  "67": "7273",
-  "68": "6531031914842725",
-  "69": "510510",
-  "70": "8319823",
-  "71": "428570",
-  "72": "303963552391",
-  "73": "7295372",
-  "74": "402",
-  "75": "161667",
-  "76": "190569291",
-  "77": "71",
-  "78": "55374",
-  "79": "73162890",
-  "80": "40886",
-  "81": "427337",
-  "82": "260324",
-  "83": "425185",
-  "84": "101524",
-  "85": "2772",
-  "86": "1818",
-  "87": "1097343",
-  "88": "7587457",
-  "89": "743",
-  "90": "1217",
-  "91": "14234",
-  "92": "8581146",
-  "93": "1258",
-  "94": "518408346",
-  "95": "14316",
-  "96": "24702",
-  "97": "8739992577",
-  "98": "18769",
-  "99": "709",
+  "001": "233168",
+  "002": "4613732",
+  "003": "6857",
+  "004": "906609",
+  "005": "232792560",
+  "006": "25164150",
+  "007": "104743",
+  "008": "23514624000",
+  "009": "31875000",
+  "010": "142913828922",
+  "011": "70600674",
+  "012": "76576500",
+  "013": "5537376230",
+  "014": "837799",
+  "015": "137846528820",
+  "016": "1366",
+  "017": "21124",
+  "018": "1074",
+  "019": "171",
+  "020": "648",
+  "021": "31626",
+  "022": "871198282",
+  "023": "4179871",
+  "024": "2783915460",
+  "025": "4782",
+  "026": "983",
+  "027": "-59231",
+  "028": "669171001",
+  "029": "9183",
+  "030": "443839",
+  "031": "73682",
+  "032": "45228",
+  "033": "100",
+  "034": "40730",
+  "035": "55",
+  "036": "872187",
+  "037": "748317",
+  "038": "932718654",
+  "039": "840",
+  "040": "210",
+  "041": "7652413",
+  "042": "162",
+  "043": "16695334890",
+  "044": "5482660",
+  "045": "1533776805",
+  "046": "5777",
+  "047": "134043",
+  "048": "9110846700",
+  "049": "296962999629",
+  "050": "997651",
+  "051": "121313",
+  "052": "142857",
+  "053": "4075",
+  "054": "376",
+  "055": "249",
+  "056": "972",
+  "057": "153",
+  "058": "26241",
+  "059": "129448",
+  "060": "26033",
+  "061": "28684",
+  "062": "127035954683",
+  "063": "49",
+  "064": "1322",
+  "065": "272",
+  "066": "661",
+  "067": "7273",
+  "068": "6531031914842725",
+  "069": "510510",
+  "070": "8319823",
+  "071": "428570",
+  "072": "303963552391",
+  "073": "7295372",
+  "074": "402",
+  "075": "161667",
+  "076": "190569291",
+  "077": "71",
+  "078": "55374",
+  "079": "73162890",
+  "080": "40886",
+  "081": "427337",
+  "082": "260324",
+  "083": "425185",
+  "084": "101524",
+  "085": "2772",
+  "086": "1818",
+  "087": "1097343",
+  "088": "7587457",
+  "089": "743",
+  "090": "1217",
+  "091": "14234",
+  "092": "8581146",
+  "093": "1258",
+  "094": "518408346",
+  "095": "14316",
+  "096": "24702",
+  "097": "8739992577",
+  "098": "18769",
+  "099": "709",
   "100": "756872327473",
   "101": "37076114526",
   "102": "228",
@@ -724,4 +724,4 @@
   "723": "1395793419248",
   "724": "18128250110",
   "725": "4598797036650685"
-}
\ No newline at end of file
+}
diff --git a/project_euler/validate_solutions.py b/project_euler/validate_solutions.py
index b340fe945d76..6cc1d6498e37 100755
--- a/project_euler/validate_solutions.py
+++ b/project_euler/validate_solutions.py
@@ -37,19 +37,15 @@ def collect_solution_file_paths() -> List[pathlib.Path]:
     return solution_file_paths
 
 
-def expand_parameters(param: pathlib.Path) -> str:
-    """Expand parameters in pytest parametrize"""
-    project_dirname = param.parent.name
-    solution_filename = param.name
-    return f"{project_dirname}/{solution_filename}"
-
-
 @pytest.mark.parametrize(
-    "solution_path", collect_solution_file_paths(), ids=expand_parameters
+    "solution_path",
+    collect_solution_file_paths(),
+    ids=lambda path: f"{path.parent.name}/{path.name}",
 )
 def test_project_euler(solution_path: pathlib.Path):
     """Testing for all Project Euler solutions"""
-    problem_number: str = solution_path.parent.name[8:]  # problem_[extract his part]
+    # problem_[extract this part] and pad it with zeroes for width 3
+    problem_number: str = solution_path.parent.name[8:].zfill(3)
     expected: str = PROBLEM_ANSWERS[problem_number]
     solution_module = convert_path_to_module(solution_path)
     answer = str(solution_module.solution())