my solution for project Euler