template <typename T>
std::ostream& operator<<(std::ostream& os, Intervalo<T> i)
{
    os << "[" << i.getInicio() << "," << i.getFim() << "]";
    return os;
}

template <typename T>
Intervalo<T> encontrarIntervaloComRaiz (T inicio, FuncaoMatematica funcao, T incremento = 1) {
    T i = inicio - 1;