Buenas, estoy tratando de hacer este ejercicio pero me da un error que no estoy pudiendo resolver al usar sqrt. Me pueden decir que tengo mal? Gracias!
El código de mi solución es:
getDivisores :: Int -> Int -> [Int]
getDivisores x n | x > (sqrt n) = []
| (mod) x n == 0 = x : getDivisores (x + 1) n
| otherwise = getDivisores (x + 1) n
divisores :: IO ()
divisores = getInt >>= (\n -> print $ getDivisores 1 n)
Pero al tratar de compilar me dice:
Ej.hs:18:25: error:
Ej.hs:18:25: error:
* No instance for (Floating Int) arising from a use of `sqrt'
* In the second argument of `(>)', namely `(sqrt n)'
In the expression: x > (sqrt n)
In a stmt of a pattern guard for
an equation for `getDivisores':
x > (sqrt n)
|
18 | getDivisores x n | x > (sqrt n) = []
| ^^^^^^