Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

answered 12 years ago

calc314 gravatar image

Here is what I've found. You can define the coefficients in the ring R=Integer(9). Then, define the polynomial ring K.<x>=R[]. After that, you can do calculations in the polynomial ring and can find the quotient and remainder. See below.

sage: R=Integers(9)
sage: list(R)

[0, 1, 2, 3, 4, 5, 6, 7, 8]

sage: K.<x>=R[]
sage: p1=x^4-3*x
sage: print p1

x^4 + 6*x

sage: p2=x^2+5
sage: p1*p2

x^6 + 5*x^4 + 6*x^3 + 3*x

sage: p1.quo_rem(p2)

(x^2 + 4, 6*x + 7)

sage: (x^2+4)*p2+(6*x+7)

x^4 + 6*x
click to hide/show revision 2
added comment on factoring

Here is what I've found. You can define the coefficients in the ring R=Integer(9). Then, define the polynomial ring K.<x>=R[]. After that, you can do calculations in the polynomial ring and can find the quotient and remainder. That handles the long division. See below.

sage: R=Integers(9)
sage: list(R)

[0, 1, 2, 3, 4, 5, 6, 7, 8]

sage: K.<x>=R[]
sage: p1=x^4-3*x
sage: print p1

x^4 + 6*x

sage: p2=x^2+5
sage: p1*p2

x^6 + 5*x^4 + 6*x^3 + 3*x

sage: p1.quo_rem(p2)

(x^2 + 4, 6*x + 7)

sage: (x^2+4)*p2+(6*x+7)

x^4 + 6*x

In terms of factoring, I get an error.

sage: p1.factor()

Traceback (most recent call last):
...
NotImplementedError: factorization of polynomials over rings with composite characteristic is not implemented

So this won't work for pn with p prime and n>1. However, it will work nicely for just prime p.

click to hide/show revision 3
added UFD info

Here is what I've found. You can define the coefficients in the ring R=Integer(9). Then, define the polynomial ring K.<x>=R[]. After that, you can do calculations in the polynomial ring and can find the quotient and remainder. That handles the long division. See below.

sage: R=Integers(9)
sage: list(R)

[0, 1, 2, 3, 4, 5, 6, 7, 8]

sage: K.<x>=R[]
sage: p1=x^4-3*x
sage: print p1

x^4 + 6*x

sage: p2=x^2+5
sage: p1*p2

x^6 + 5*x^4 + 6*x^3 + 3*x

sage: p1.quo_rem(p2)

(x^2 + 4, 6*x + 7)

sage: (x^2+4)*p2+(6*x+7)

x^4 + 6*x

In terms of factoring, I get an error.error, since Z/pnZ[x] is not an unique factorization domain, n>1.

sage: p1.factor()

Traceback (most recent call last):
...
NotImplementedError: factorization of polynomials over rings with composite characteristic is not implemented

So this won't work for pn with p prime and n>1. However, it will work nicely for just prime p.