recursion with project euler