code: func (x Pol) DivMod(d Pol) (Pol, Pol) {
  	if x == 0 {
  		return 0, 0
  	}
  
  	if d == 0 {
  		panic("division by zero")
  	}
  
  	D := d.Deg()
  	diff := x.Deg() - D
  	if diff < 0 {
  		return 0, x
  	}
  
  	var q Pol
  	for diff >= 0 {
  		m := d << uint(diff)
  		q |= (1 << uint(diff))
  		x = x.Add(m)
  
  		diff = x.Deg() - D
  	}
  
  	return q, x
  }
docs: // DivMod returns x / d = q, and remainder r,
  // see https://en.wikipedia.org/wiki/Division_algorithm