problem solutions for project euler