(f, g, p, K)
return h[:dq + 1]
Compute exact quotient in ``GF(p)[x]``.

    Examples
    ========

    >>> from sympy.polys.domains import ZZ
    >>> from sympy.polys.galoistools import gf_quo

    >>> gf_quo(ZZ.map([1, 0, 1, 1]), ZZ.map([1, 1, 0]), 2, ZZ)
    [1, 1]
    >>> gf_quo(ZZ.map([1, 0, 3, 2, 3]), ZZ.map([2, 2, 2]), 5, ZZ)
    [3, 2, 4]
Compute exact quotient in ``GF(p)[x]``.
Compute exact quotient in GF ( p ) [ x ] .
def gf_quo(f, g, p, K):
    """
    Compute exact quotient in ``GF(p)[x]``.

    Examples
    ========

    >>> from sympy.polys.domains import ZZ
    >>> from sympy.polys.galoistools import gf_quo

    >>> gf_quo(ZZ.map([1, 0, 1, 1]), ZZ.map([1, 1, 0]), 2, ZZ)
    [1, 1]
    >>> gf_quo(ZZ.map([1, 0, 3, 2, 3]), ZZ.map([2, 2, 2]), 5, ZZ)
    [3, 2, 4]

    """
    df = gf_degree(f)
    dg = gf_degree(g)

    if not g:
        raise ZeroDivisionError("polynomial division")
    elif df < dg:
        return []

    inv = K.invert(g[0], p)

    h, dq, dr = f[:], df - dg, dg - 1

    for i in xrange(0, dq + 1):
        coeff = h[i]

        for j in xrange(max(0, dg - i), min(df - i, dr) + 1):
            coeff -= h[i + j - dg] * g[dg - j]

        h[i] = (coeff * inv) % p

    return h[:dq + 1]
def gf_quo ( f , g , p , K ) : df = gf_degree ( f ) dg = gf_degree ( g ) if not g : raise ZeroDivisionError ( "polynomial division" ) elif df < dg : return [ ] inv = K . invert ( g [ 0 ] , p ) h , dq , dr = f [ : ] , df - dg , dg - 1 for i in xrange ( 0 , dq + 1 ) : coeff = h [ i ] for j in xrange ( max ( 0 , dg - i ) , min ( df - i , dr ) + 1 ) : coeff -= h [ i + j - dg ] * g [ dg - j ] h [ i ] = ( coeff * inv ) % p return h [ : dq + 1 ]