  Functional graphs (FGs) model the graph structures used to analyse the
behaviour of functions from a discrete set to itself. In turn, such functions
are used to study real complex phenomena evolving in time. As the systems
involved can be quite large, it is interesting to decompose and factorise them
into several subgraphs acting together. Polynomial equations over functional
graphs provide a formal way to represent this decomposition and factorisation
mechanism, and solving them validates or invalidates hypotheses on their
decomposability. The current solution method breaks down a single equation into
a series of basic equations of the form AxX = B (with A, X, and B being FGs) to
identify the possible solutions. However, it is able to consider just FGs made
of cycles only. This work proposes an algorithm for solving these basic
equations for general connected FGs. By exploiting a connection with the
cancellation problem, we prove that the upper bound to the number of solutions
is closely related to the size of the cycle in the coefficient A of the
equation. The cancellation problem is also involved in the main algorithms
provided by the paper. We introduce a polynomial-time semi-decision algorithm
able to provide constraints that a potential solution will have to satisfy if
it exists. Then, exploiting the ideas introduced in the first algorithm, we
introduce a second exponential-time algorithm capable of finding all solutions
by integrating several 'hacks' that try to keep the exponential as tight as
possible.
