'Efficiently extract the coefficient of a product.'

def as_coeff_Mul(self, rational=False):

    (coeff, args) = (self.args[0], self.args[1:])
    if coeff.is_Number:
        if ((not rational) or coeff.is_Rational):
            if (len(args) == 1):
                return (coeff, args[0])
            else:
                return (coeff, self._new_rawargs(*args))
        elif coeff.is_negative:
            return (S.NegativeOne, self._new_rawargs(*(((- coeff),) + args)))
    return (S.One, self)
