'Return self raised to a non-negative integer power.
Examples
>>> from sympy.core.exprtools import Factors
>>> from sympy.abc import x, y
>>> a = Factors((x*y**2).as_powers_dict())
>>> a**2
Factors({x: 2, y: 4})'

def pow(self, other):

    if isinstance(other, Factors):
        other = other.as_expr()
        if other.is_Integer:
            other = int(other)
    if (isinstance(other, SYMPY_INTS) and (other >= 0)):
        factors = {}
        if other:
            for (factor, exp) in self.factors.items():
                factors[factor] = (exp * other)
        return Factors(factors)
    else:
        raise ValueError(('expected    non-negative    integer,    got    %s' % other))
