0 1 randRange(2, 10) randFromArray([2, 3, 4, 5, 10]) getPrimeFactorization(CUBE) $.map(CUBE_FACTORS, function(x) {return "(" + x + "\\times " + x + "\\times " + x + ")"; }) $.map(CUBE_FACTORS, function(x) {return "\\sqrt[3]{" + x + "\\times " + x + "\\times " + x + "}"; }) getPrimeFactorization(NOT_CUBE) NOT_CUBE * CUBE * CUBE * CUBE getPrimeFactorization(Q) PRIMES.slice(1, PRIMES.length - 1) Q

`\Large{\sqrt[3]{Q} = \text{?}}`

Q

`\sqrt[3]{Q}` is the number that, when multiplied by itself three times, equals `Q`.

First break down `Q` into its prime factorization and look for factors that appear three times.

Let's draw a factor tree.

init({ range: [[-1, FACTORIZATION.length + 3], [-2 * (FACTORIZATION.length + 1), 1]], scale: [30, 30] }); label([cx + 1, y], curr); path([[cx + 1, y - 0.5], [cx, y - 1.5]]); path([[cx + 1, y - 0.5], [cx + 2, y - 1.5]]); y -= 2; cx += 1; curr = curr / PRIMES[0]; label([cx - 1, y], PRIMES[0]); circle([cx - 1, y], 0.5); label([cx + 1, y], curr);
path([[cx + 1, y - 0.5], [cx, y - 1.5]]); path([[cx + 1, y - 0.5], [cx + 2, y - 1.5]]); y -= 2; cx += 1; curr = curr / factor; label([cx - 1, y], factor); circle([cx - 1, y], 0.5); label([cx + 1, y], curr);
circle([cx + 1, y], 0.5);

So the prime factorization of `Q` is `PRIMES.join( "\\times " )`.

Notice that we can rearrange the factors like so:

`Q = PRIMES.join(" \\times ") = MULTIPLES.join(" \\times ") \times NOT_CUBE_FACTORS.join("\\times ")`

So `\sqrt[3]{Q} = ROOTS.join(" \\times ") \times \sqrt[3]{NOT_CUBE_FACTORS.join("\\times ")}`

`\sqrt[3]{Q} = CUBE_FACTORS.join("\\times ") \times \sqrt[3]{NOT_CUBE_FACTORS.join("\\times ")}`

`\sqrt[3]{Q} = CUBE \sqrt[3]{NOT_CUBE}`