Exemplo n.º 1
0
        public void PassTest()
        {
            PrimeSieve pgAtkin = new SieveOfAtkin(100);
            Ticker     t       = new Ticker();

            foreach (int i in pgAtkin)
            {
                MillerRabin.MillerRabinPass(2, i);
            }
            t.Tick("2Pass");
            foreach (int i in pgAtkin)
            {
                MillerRabin.MillerRabinPass(3, i);
            }
            t.Tick("3Pass");
            foreach (int i in pgAtkin)
            {
                MillerRabin.MillerRabinPass(7, i);
            }
            t.Tick("7Pass");
            foreach (int i in pgAtkin)
            {
                MillerRabin.MillerRabinPass(61, i);
            }
            t.Tick("61Pass");
        }
 public void MillerRabinPassTest()
 {
     foreach (long lTestValue in laScatteredLongPrimes)
     {
         Assert.IsTrue(MillerRabin.MillerRabinPass(2L, lTestValue));
     }
 }
Exemplo n.º 3
0
        public void StrongPseudoPrimes()
        {
            int iActualPrimeCount     = 0;
            int iActualCompositeCount = 0;
            int iMRPrimeCount         = 0;
            int iMRCompositeCount     = 0;
            int iTotalCount           = 0;

            for (int i = 1; i < pg.largestPrime(); i++)
            {
                iTotalCount++;
                if (pg.IsPrime(i))
                {
                    iActualPrimeCount++;
                }
                if (MillerRabin.MillerRabinPass(2, i))
                {
                    if (MillerRabin.MillerRabinPass(7, i))
                    {
                        iMRPrimeCount++;
                    }
                }
            }
            iActualCompositeCount = iTotalCount - iActualPrimeCount;
            iMRCompositeCount     = iTotalCount - iMRPrimeCount;
            Debug.WriteLine("Total Count: " + iTotalCount);
            Debug.WriteLine("Actual - C: " + iActualCompositeCount + ", P: " + iActualPrimeCount);
            Debug.WriteLine("Miller Rabin - C: " + iMRCompositeCount + ", P: " + iMRPrimeCount);
        }