This is useful for factoring large nth degree polynomials (and finding their roots, of course), as well as finding an upper and lower limit for the roots of an nth degree polynomial, as per the remainder and factor theorems and some others.

It uses L₁ for input of the coefficients of the starting polynomial, uses X for r in (x-r) (what you're divding by), so have those variables predefined (or put :Input L₁:Input X at the the begining of the program), and it outputs L₂ as the answer with the last list entry as the remainder.

```
:dim(L₁)→dim(L₂ )
:1→A
:L₁(1)→L₂ (1)
:Repeat A=dim(L₁
:1+A→A
:X(L₂(A-1))+L₁(A)→L₂ (A)
:End
:L₂
```

Calc compatability:Ti 83 and up

Error Conditions: Just input things that you would normally input for synthetic division

Throws error Undefined if L1 does not exist (its empty)