Project Euler Update

One of my goals for the academic winter break was to level up in Project Euler, a problem-solving challenge and community. This goal was especially on my mind since I’m starting my last semester of my Computer Science MS. I want to be in a position where I’m coding regularly and engaged in a fun, creative way with mathematics. In 2018 I also want to commit to making regular progress on (a select number of) side projects, with preference given to those that I began a while back but are in danger of atrophying.

So: I’m proud of completing the first 51 Euler problems, earning a few new badges, reaching Level 2 (25 solved problems = 1 level), and solving my most difficult problem yet (15% difficulty). I’ve completed 26 problems since finishing up final exams in December. Solutions were mostly written in Python with a few each in C and Racket. My goal is to solve one problem per week during the school year and reach 100 before the end of 2018. Making consistent progress is difficult without collecting useful subroutines, especially those related to generating and testing primes. Implementing a simple Miller-Rabin primality check along with modular exponentiation was key to reaching Level 2.

Thanks to my housemate Ethan (a brilliant and uplifting Economics PhD student!) for a conversation in which we reached a breakthrough on the aforementioned 15% difficulty problem. In a nice bit of biographical symmetry, the insight had to do with the “sum of digits is divisible by 3” rule. This trick is the one most cemented in my brain from Math Counts practice back in middle school. Thank you, Mrs. O’Keeffe!

That’s all for now. I’ll post an update on my progress in March.

17 Jan 2018