public void Test()
        {
            BigInteger p   = 5323910339802728171;
            BigInteger q   = 4777244790709507121;
            var        xor = p ^ q;
            var        rsa = new RSA(65537, p * q);
            var        res = rsa.BranchAndBound((p, q, bit) => (p ^ q) == (xor & bit.Mask));

            Assert.True(res);
            Assert.True(rsa.P * rsa.Q == p * q);
        }