randRange(2, 9)
random() < 0.2
randRangeExclude(-20, 20, [-1, 0, 1])
getGCD(A, B)
IS_IRREDUCIBLE?plus(A+"x",B):GCD+"("+plus(A/GCD+"x",B/GCD)+")"
toSentenceTex(getFactors(abs(A)).concat(["x"]))
toSentenceTex(getFactors(abs(B)))
GCD
"[-\\u2212]\\s*" + GCD
"(?:" + (A < 0 ? "[-\\u2212]" : "") + abs(A / GCD) + (A / GCD === 1 ? "|" : "" ) + (A / GCD === -1 ? "|[-\\u2212]" : "") + ")\\s*x"
"(?:" + (A > 0 ? "[-\\u2212]" : "") + abs(A / GCD) + (A / GCD === -1 ? "|" : "" ) + (A / GCD === 1 ? "|[-\\u2212]" : "") + ")\\s*x"
(B < 0 ? "[-\\u2212]" : "\\+") + "\\s*" + abs(B / GCD)
(B > 0 ? "[-\\u2212]" : "\\+") + "\\s*" + abs(B / GCD)
Escribe la siguiente expresión en su forma más factorizada:
expr(["+", ["*", A, "x"], B])
^\s*TERM2\s*TERM3\s*$
^\s*TERM2N\s*TERM3N\s*$
^\s*\(\s*TERM2\s*TERM3\s*\)\s*$
^\s*\(\s*TERM2N\s*TERM3N\s*\)\s*$
^\s*TERM1\s*\(\s*TERM2\s*TERM3\s*\)\s*$
^\s*TERM1N\s*\(\s*TERM2N\s*TERM3N\s*\)\s*$
una expresión factorizada, como 5(x+2)
Para factorizar un polinomio, primero debes intentar encontrar el máximo común divisor de todos los términos.
Los factores de Ax son Ax_FACTORS y los factores de B son B_FACTORS.
El máximo común divisor de Ax y B es GCD.
Puesto que el máximo común divisor es 1, la expresión se encuentra ya en su forma más factorizada.
Por lo tanto la respuesta es la expresión original, SOLUTION.
Podemos factorizar GCD y ponerlo antes del paréntesis.
Si dividimos cada uno de los términos de la expresión original entre GCD obtenemos \dfrac{Ax}{GCD} = plus((A/GCD) + "x") y \dfrac{B}{GCD} = B/GCD.
Así que la expresión factorizada es SOLUTION.