Example #1
0
        public PPDN(PPDN other)
        {
            m_base              = other.m_base;
            m_nextBase          = other.m_nextBase;
            m_nextBaseRemainder = other.m_nextBaseRemainder;

            m_lastBases          = new Stack <BigInteger>(other.m_lastBases);
            m_lastBaseRemainders = new Stack <int>(other.m_lastBaseRemainders);

            m_digits        = (byte[])other.m_digits.Clone();
            m_digitsUpToNow = other.m_digitsUpToNow;
        }
Example #2
0
        public PPDN(PPDN other)
        {
            m_base = other.m_base;
            m_nextBase = other.m_nextBase;
            m_nextBaseRemainder = other.m_nextBaseRemainder;

            m_lastBases = new Stack<BigInteger>(other.m_lastBases);
            m_lastBaseRemainders = new Stack<int>(other.m_lastBaseRemainders);

            m_digits = (byte[])other.m_digits.Clone();
            m_digitsUpToNow = other.m_digitsUpToNow;
        }
Example #3
0
 static void tryBase(byte b)
 {
     Console.Out.WriteLine("Base " + b + " (" + DateTime.Now.ToString() + ")");
     Parallel.For(1, b,
                  index =>
     {
         byte dInner = (byte)index;
         PPDN p      = new PPDN(b);
         tryDigit(p, dInner, (byte)(b - 1));
         Console.Out.WriteLine("    " + dInner);
     });
     //for (byte d1 = 1; d1 < b; d1++)
     //{
     //    PPDN p = new PPDN(b);
     //    tryDigit(p, d1, (byte)(b - 1));
     //}
 }
Example #4
0
 static void tryBase(byte b)
 {
     Console.Out.WriteLine("Base " + b + " (" + DateTime.Now.ToString() + ")");
     Parallel.For(1, b,
            index =>
            {
                byte dInner = (byte)index;
                PPDN p = new PPDN(b);
                tryDigit(p, dInner, (byte)(b - 1));
                Console.Out.WriteLine("    " + dInner);
            });
     //for (byte d1 = 1; d1 < b; d1++)
     //{
     //    PPDN p = new PPDN(b);
     //    tryDigit(p, d1, (byte)(b - 1));
     //}
 }
Example #5
0
 static void tryDigit(PPDN p, byte digit, byte levelsLeft)
 {
     bool worked = p.addDigit(digit);
     if (worked)
     {
         if (levelsLeft - 1 > 0)
         {
             List<byte> digitsToTry = new List<byte>(p.digitsLeft());
             foreach (byte nextDigit in digitsToTry)
             {
                 tryDigit(p, nextDigit, (byte)(levelsLeft - 1));
             }
         }
         else
         {
             Console.Out.WriteLine("  FOUND! " + p);
         }
         p.removeLastDigit();
     }
 }
Example #6
0
        static void tryDigit(PPDN p, byte digit, byte levelsLeft)
        {
            bool worked = p.addDigit(digit);

            if (worked)
            {
                if (levelsLeft - 1 > 0)
                {
                    List <byte> digitsToTry = new List <byte>(p.digitsLeft());
                    foreach (byte nextDigit in digitsToTry)
                    {
                        tryDigit(p, nextDigit, (byte)(levelsLeft - 1));
                    }
                }
                else
                {
                    Console.Out.WriteLine("  FOUND! " + p);
                }
                p.removeLastDigit();
            }
        }