solution of projecteuler.net