digitFactorsTree = (num, base) => {
const digits = decomposeNumberToArray(num, base);
const sums = digits
.map((v, i, a) => composeArrayToNumber(a.slice(a.length - (i + 1)), base))
.reverse();
return buildTree(
digits.map((v, i, a) => [
sums[i],
v * Math.pow(base, a.length - (i + 1)),
Math.pow(base, a.length - (i + 1)),
v
]),
0,
generatorFactory()
);
}