Esempio n. 1
0
 public void FindNthRoot()
 {
     Assert.AreEqual(6, NTTUtility.FindNthRoot(7, 1));
     Assert.AreEqual(5, NTTUtility.FindNthRoot(13, 2));
     Assert.AreEqual(2, NTTUtility.FindNthRoot(17, 3));
     Assert.AreEqual(3, NTTUtility.FindNthRoot(17, 4));
     Assert.AreEqual(-1, NTTUtility.FindNthRoot(17, 5));
 }
Esempio n. 2
0
 public void FindMinPrime()
 {
     for (int n = 1; n > 0; n <<= 1)
     {
         var(p, d) = NTTUtility.FindMinPrime(n);
         Console.WriteLine($"n = {n}: p = {p}, d = {d}");
     }
 }
Esempio n. 3
0
        public void FindPrimes()
        {
            var n = 1 << 23;

            Console.WriteLine($"n = {n}");
            foreach (var(p, d) in NTTUtility.FindPrimes(n, 800000000, int.MaxValue))
            {
                Console.WriteLine($"p = {p}, d = {d}");
            }
        }
Esempio n. 4
0
 public void FindMinGenerator()
 {
     Assert.AreEqual(1, NTTUtility.FindMinGenerator(2));
     Assert.AreEqual(2, NTTUtility.FindMinGenerator(3));
     Assert.AreEqual(2, NTTUtility.FindMinGenerator(5));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(7));
     Assert.AreEqual(2, NTTUtility.FindMinGenerator(13));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(17));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(31));
     Assert.AreEqual(6, NTTUtility.FindMinGenerator(41));
     Assert.AreEqual(5, NTTUtility.FindMinGenerator(97));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(65537));
     Assert.AreEqual(2, NTTUtility.FindMinGenerator(200003));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(7340033));
     Assert.AreEqual(15, NTTUtility.FindMinGenerator(13631489));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(104857601));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(167772161));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(469762049));
     Assert.AreEqual(11, NTTUtility.FindMinGenerator(754974721));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(998244353));
     Assert.AreEqual(3, NTTUtility.FindMinGenerator(1004535809));
     Assert.AreEqual(10, NTTUtility.FindMinGenerator(1107296257));
     Assert.AreEqual(31, NTTUtility.FindMinGenerator(2013265921));
 }