IsOdd() private method

private IsOdd ( ) : bool
return bool
    public BigInteger ModPow(BigInteger power, BigInteger mod) {
      if (object.ReferenceEquals(power, null)) {
        throw new ArgumentNullException("power");
      }
      if (object.ReferenceEquals(mod, null)) {
        throw new ArgumentNullException("mod");
      }

      if (power < 0) {
        throw new ArgumentOutOfRangeException(MathResources.NonNegativePower);
      }

      BigInteger factor = this;
      BigInteger result = One % mod;
      while (power != Zero) {
        if (power.IsOdd()) {
          result = result * factor;
          result = result % mod;
        }
        if (power == One) break;  // avoid costly factor.Square()
        factor = factor.Square();
        factor = factor % mod;
        power >>= 1;
      }
      return result;
    }