Solutions to the project euler challenges