Fracciones que son cuadrados perfectos

Nitesh Singh ha planteado en Mathematics Competitions el siguiente problema:

¿Cuántos números enteros n existen tales que n/(1450−n) es un cuadrado perfecto?

Vamos a generalizarlo y resolverlo con Haskell. La generalización es

Para cada número natural x, calcular los números enteros n tales que n/(x−n) es un cuadrado perfecto.

Escribiremos dos formas de resolverlo y compararemos su eficiencia.

Este ejercicio sirve para ilustrar cómo el prepocesamiento matemático puede ayudar a mejorar la eficiencia de los programas.