When Python 3.6 was released, I was pleased to see my last reservations about Python 3 addressed, and appealing improvements to the language, in performance as well as in features. Thus, I started making the personal switch from 2.7 to 3.6 in January, committing to using 3.6 over 2.7 whenever possible, i.e. unless dealing with some legacy system or library.

In effort to familiarize myself with Python 3.6’s new features and subtle differences to 2.7, I decided to revisit the Project Euler exercises, and to do the first fifty. I am sharing my solutions in this GitHub repository. Take a look!

In solving these problems, I noticed that particular kinds of functions
are required over and over again: for example, lots of Project Euler problems
require you to generate some prime numbers. I bundled all these re-usable helper
functions into a small package called

Though I wrote my solutions casually, I tried to use reasonably
clear variable names and light comments to indicate the *reasoning*
behind my solutions. The Project Euler exercises, as far as I’m
familiar with them, are generally not so much
about writing code to solve problems as they are about finding theoretically
efficient ways to solve problems, and then implementing them in practice.
If you’re working on the problems yourself, I hope that you may find my
solutions useful.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.