max_div x y
	| y == 0 = x
	| otherwise = max_div y (rem x y)

min_mul x y
	| x == 1 = y
	| y == 1 = x
	| otherwise = (x*y) `div` (max_div x y)

raiz x = raiz' x x
	where raiz' y m	| abs(a-y) < 1 = a
					| otherwise = raiz' a m
					where a = (y + m `div` y) `div` 2

modiv x y = (x `mod` y, x `div` y)

dias :: Int -> (String, Int)
dias x
	| x == 1 = ("Janeiro", 31)
	| x == 2 = ("Fevereiro", 28)
	| x == 3 = ("Marco", 31)
	| x == 4 = ("Abril", 30)
	| x == 5 = ("Maio", 31)
	| x == 6 = ("Junho", 30)
	| x == 7 = ("Julho", 31)
	| x == 8 = ("Agosto", 31)
	| x == 9 = ("Setembro", 30)
	| x == 10 = ("Outubro", 31)
	| x == 11 = ("Novembro", 30)
	| otherwise = ("Dezembro", 31)

datas (x, y) (a, b) = (b - y) * 30 + (a - x)