project euler solutions (december 2012)