this project euler is hard