Próximos a múltiplos de 6
Se dice que un par de números (x,y) está próximo a un múltiplo de 6 si es de la forma (6*n-1,6*n+1)
. Por ejemplo, (17,19) está cerca de un múltiplo de 6 porque (17,19) = (6*3-1,6*3+1)
.
Definir la función
1 |
proximosAmultiplosDe6 :: (Integer,Integer) -> Bool |
tal que (proximosAmultiplosDe6 (x,y)) se verifica si el par (x,y) está próximo a un múltiplo de 6. Por ejemplo,
1 2 3 4 5 6 |
proximosAmultiplosDe6 (17,19) == True proximosAmultiplosDe6 (18,20) == False proximosAmultiplosDe6 (5,19) == False proximosAmultiplosDe6 (1,3) == False proximosAmultiplosDe6 (74074073407403,74074073407405) == True proximosAmultiplosDe6 (86419752308637,86419752308639) == False |
Soluciones
1 2 3 4 5 6 7 8 9 10 |
-- 1ª solución proximosAmultiplosDe6 :: (Integer,Integer) -> Bool proximosAmultiplosDe6 (x,y) = (x+1) `mod` 6 == 0 && y == 6*n+1 where n = (x+1) `div` 6 -- 2ª solución proximosAmultiplosDe6' :: (Integer,Integer) -> Bool proximosAmultiplosDe6' (a,b) = a+1 == b-1 && mod (a+b) 6 == 0 |
7 Comentarios