my solution to project_euler. Don't peek it!