Project euler problem solutions