solutions to problems from ProjectEuler.net