1 2 3 4 5 6
euler3 n = last.aux n primos where primos = 2:(filter (\x->euler3 x == x) [3,5..] aux n (x:xs) |x*x>n = [n] |mod n x == 0 = aux (div n x) xs