Divisores de un número con final dado
Enunciado
1 2 3 4 5 6 |
-- Definir la función -- divisoresConFinal :: Integer -> Integer -> [Integer] -- tal que (divisoresConFinal n m) es la lista de los divisores de n -- cuyos dígitos finales coincide con m. Por ejemplo, -- divisoresConFinal 84 4 == [4,14,84] -- divisoresConFinal 720 20 == [20,120,720] |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 |
divisoresConFinal :: Integer -> Integer -> [Integer] divisoresConFinal n m = [x | x <- [1..n], n `rem` x == 0, final x m] -- final 325 5 == True -- final 325 25 == True -- final 325 35 == False final :: Integer -> Integer -> Bool final x y = take n xs == ys where xs = reverse (show x) ys = reverse (show y) n = length ys |
Referencias
El ejercicio está basado en el problema 474 del proyecto Euler.
13 Comentarios