Exemple #1
0
 public void NearestCoprimeFloor0And0SignedShouldReturnNeg1()
 {
     Assert.AreEqual(-1, PrimeMath.NearestCoprimeFloor((int)0, (int)0), "int");
     Assert.AreEqual(-1, PrimeMath.NearestCoprimeFloor((long)0, (long)0), "long");
 }
Exemple #2
0
 public void NearestCoprimeFloorNeg2And0ShouldReturn0()
 {
     Assert.AreEqual(0, PrimeMath.NearestCoprimeFloor((int)-2, (int)0), "int");
     Assert.AreEqual(0, PrimeMath.NearestCoprimeFloor((long)-2, (long)0), "long");
 }
Exemple #3
0
 public void NearestCoprimeFloor0And0UnsignedShouldReturn0()
 {
     Assert.AreEqual(0, PrimeMath.NearestCoprimeFloor((uint)0, (uint)0), "uint");
     Assert.AreEqual(0, PrimeMath.NearestCoprimeFloor((ulong)0, (ulong)0), "ulong");
     Assert.AreEqual(UInt128.Zero, PrimeMath.NearestCoprimeFloor((UInt128)0, (UInt128)0), "UInt128");
 }
Exemple #4
0
 public void IsCoPrimeSwappedArgOrderShouldReturnSameResult()
 {
     for (int i = 10; i < 20; i++)
     {
         for (int j = 20; j < 30; j++)
         {
             Assert.AreEqual(PrimeMath.IsCoprime((uint)i, (uint)j), PrimeMath.IsCoprime((uint)j, (uint)i), "uint");
             Assert.AreEqual(PrimeMath.IsCoprime((int)i, (int)j), PrimeMath.IsCoprime((int)j, (int)i), "int");
             Assert.AreEqual(PrimeMath.IsCoprime((ulong)i, (ulong)j), PrimeMath.IsCoprime((ulong)j, (ulong)i), "ulong");
             Assert.AreEqual(PrimeMath.IsCoprime((long)i, (long)j), PrimeMath.IsCoprime((long)j, (long)i), "long");
             Assert.AreEqual(PrimeMath.IsCoprime((UInt128)(ulong)i, (UInt128)(ulong)j), PrimeMath.IsCoprime((UInt128)(ulong)j, (UInt128)(ulong)i), "UInt128");
         }
     }
 }
Exemple #5
0
 public void IsCoPrimeEqualButOppositeSignValuesShouldReturnTrue()
 {
     Assert.AreEqual(false, PrimeMath.IsCoprime((int)-11, (int)11), "int");
     Assert.AreEqual(false, PrimeMath.IsCoprime((long)-11, (long)11), "long");
 }
Exemple #6
0
 public void IsCoPrimeNeg1AndNeg1ShouldReturnTrue()
 {
     // 1/-1 are the only number coprime to itself
     Assert.AreEqual(true, PrimeMath.IsCoprime((int)-1, (int)-1), "int");
     Assert.AreEqual(true, PrimeMath.IsCoprime((long)-1, (long)-1), "long");
 }
Exemple #7
0
        /// <summary>
        /// Run solution for problem 3.
        /// </summary>
        /// <param name="number">Input number.</param>
        /// <returns>Largest prime factor of <paramref name="number"/>.</returns>
        public static int Run(int number)
        {
            var primeFactors = PrimeMath.GetPrimeFactors(number);

            return(primeFactors.ToArray()[^ 1].BaseValue);