public static BigInteger DivRem(BigInteger i1, BigInteger i2, out BigInteger i3)
        {
            BigInteger[] result = i1.DivideAndRemainder(i2);

            i3 = result[1];
            return result[0];
        }