# FactoredPolynomial1

## Polynomial Factoring

Click to enlarge

This PG code shows how to require students to factor a polynomial.

• Download file: File:FactoredPolynomial1.txt (change the file extension from txt to pg when you save it)
• File location in NPL: `FortLewis/Authoring/Templates/Algebra/FactoredPolynomial1.pg`

PG problem file Explanation

Problem tagging:

```DOCUMENT();

"PGstandard.pl",
"MathObjects.pl",
"contextPolynomialFactors.pl",
"contextLimitedPowers.pl",
);

TEXT(beginproblem());
```

Initialization: We require additional contexts provided by `contextPolynomialFactors.pl` and `contextLimitedPowers.pl`

```#
#  Expanded form
#
Context("Numeric");
\$poly = Compute("8x^2+28x+12");

#
#  Factored form
#
Context("PolynomialFactors-Strict");
Context()->flags->set(singleFactors=>0);
LimitedPowers::OnlyIntegers(
minPower => 0, maxPower => 1,
message => "either 0 or 1",
);
\$factored = Compute("4(2x+1)(x+3)");
```

Setup: For the factored form we need to change to the `PolynomialFactors-Strict` context and restrict the allowed powers to either 0 or 1 using the `LimitedPowers::OnlyIntegers` block of code. Note: restricting all exponents to 0 or 1 means that repeated factors will have to be entered in the form `k(ax+b)(ax+b)` instead of `k(ax+b)^2`. Also, restricting all exponents to 0 or 1 means that the polynomial must factor as a product of linear factors (no irreducible quadratic factors can appear). Of course, we could allow exponents to be 0, 1, or 2, but then students would be allowed to enter reducible quadratic factors. There are no restrictions on the coefficients, i.e., the quadratic could have any nonzero leading coefficient. We set `singleFactors=>0` so that repeated, non-simplified factors do not generate errors.

```Context()->texStrings;
BEGIN_TEXT
Write the quadratic expression \( \$poly \)
in factored form
\( k(ax+b)(cx+d) \).
\$BR
\$BR
\{ ans_rule(30)\}
END_TEXT
Context()->normalStrings;
```

Main Text: We should explicitly tell students to enter answers in the form `k(ax+b)(cx+d)`.

```\$showPartialCorrectAnswers = 1;

ANS( \$factored->cmp() );

```

```
Context()->texStrings;
BEGIN_SOLUTION
\${PAR}SOLUTION:\${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();
```

Solution: