# 8.2 Polynomial Factorization¶

The FriCAS polynomial factorization polynomial:factorization facilities are available for all polynomial types and a wide variety of coefficient domains. factorization Here are some examples.

## 8.2.1 Integer and Rational Number Coefficients¶

Polynomials with integer polynomial:factorization:integer coefficients coefficients can be be factored.

```
v := (4*x^3+2*y^2+1)*(12*x^5-x^3*y+12)
```

-2x3y3+(24x5+24)y2+(-4x6-x3)y+48x8+12x5+48x3+12 |

_{Type: Polynomial Integer}

```
factor v
```

-(x3y-12x5-12)(2y2+4x3+1) |

_{Type: Factored Polynomial Integer}

Also, FriCAS can factor polynomials with polynomial:factorization:rational number coefficients rational number coefficients.

```
w := (4*x^3+(2/3)*x^2+1)*(12*x^5-(1/2)*x^3+12)
```

48x8+8x7-2x6+353x5+952x3+8x2+12 |

_{Type: Polynomial Fraction Integer}

```
factor w
```

48(x3+16x2+14)(x5-124x3+1) |

_{Type: Factored Polynomial Fraction Integer}

## 8.2.2 Finite Field Coefficients¶

Polynomials with coefficients in a finite field polynomial:factorization:finite field coefficients can be also be factored. finite field:factoring polynomial with coefficients in

```
u : POLY(PF(19)) :=3*x^4+2*x^2+15*x+18
```

3x4+2x2+15x+18 |

_{Type: Polynomial PrimeField 19}

These include the integers mod p, where p is prime, and extensions of these fields.

```
factor u
```

3(x+18)(x3+x2+8x+13) |

_{Type: Factored Polynomial PrimeField 19}

Convert this to have coefficients in the finite field with 193 elements. See ugProblemFinite for more information about finite fields.

```
factor(u :: POLY FFX(PF 19,3))
```

3(x+18)(x+5%I2+3%I+13)(x+16%I2+14%I+13)(x+17%I2+2%I+13) |

_{Type: Factored Polynomial FiniteFieldExtension(PrimeField 19,3)}

## 8.2.3 Simple Algebraic Extension Field Coefficients¶

Polynomials with coefficients in simple algebraic extensions polynomial:factorization:algebraic extension field coefficients of the rational numbers can be factored. algebraic number number:algebraic

Here, aa and bb are symbolic roots of polynomials.

```
aa := rootOf(aa^2+aa+1)
```

aa |

_{Type: AlgebraicNumber}

```
p:=(x^3+aa^2*x+y)*(aa*x^2+aa*x+aa*y^2)^2
```

(-aa-1)y5+((-aa-1)x3+aax)y4+((-2aa-2)x2+(-2aa-2)x)y3+((-2aa-2)x5+(-2aa-2)x4+2aax3+2aax2)y2+((-aa-1)x4+(-2aa-2)x3+(-aa-1)x2)y+(-aa-1)x7+(-2aa-2)x6-x5+2aax4+aax3 |

_{Type: Polynomial AlgebraicNumber}

Note that the second argument to factor can be a list of algebraic extensions to factor over.

```
factor(p,[aa])
```

(-aa-1)(y+x3+(-aa-1)x)(y2+x2+x)2 |

_{Type: Factored Polynomial AlgebraicNumber}

This factors x**2+3 over the integers.

```
factor(x^2+3)
```

x2+3 |

_{Type: Factored Polynomial Integer}

Factor the same polynomial over the field obtained by adjoining aa to the rational numbers.

```
factor(x^2+3,[aa])
```

(x-2aa-1)(x+2aa+1) |

_{Type: Factored Polynomial AlgebraicNumber}

Factor x**6+108 over the same field.

```
factor(x^6+108,[aa])
```

(x3-12aa-6)(x3+12aa+6) |

_{Type: Factored Polynomial AlgebraicNumber}

```
bb:=rootOf(bb^3-2)
```

bb |

_{Type: AlgebraicNumber}

```
factor(x^6+108,[bb])
```

(x2-3bbx+3bb2)(x2+3bb2)(x2+3bbx+3bb2) |

_{Type: Factored Polynomial AlgebraicNumber}

Factor again over the field obtained by adjoining both aa and bb to the rational numbers.

```
factor(x^6+108,[aa,bb])
```

(x+(-2aa-1)bb)(x+(-aa-2)bb)(x+(-aa+1)bb)(x+(aa-1)bb)(x+(aa+2)bb)(x+(2aa+1)bb) |

_{Type: Factored Polynomial AlgebraicNumber}

## 8.2.4 Factoring Rational Functions¶

Since fractions of polynomials form a field, every element (other than zero) rational function:factoring divides any other, so there is no useful notion of irreducible factors. Thus the factor operation is not very useful for fractions of polynomials.

There is, instead, a specific operation factorFraction that separately factors the numerator and denominator and returns a fraction of the factored results.

```
factorFraction((x^2-4)/(y^2-4))
```

(x-2)(x+2)(y-2)(y+2) |

_{Type: Fraction Factored Polynomial Integer}

You can also use map. This expression applies the factor operation to the numerator and denominator.

```
map(factor,(x^2-4)/(y^2-4))
```

(x-2)(x+2)(y-2)(y+2) |

_{Type: Fraction Factored Polynomial Integer}