public void NearestCoprimeFloor0And0SignedShouldReturnNeg1() { Assert.AreEqual(-1, PrimeMath.NearestCoprimeFloor((int)0, (int)0), "int"); Assert.AreEqual(-1, PrimeMath.NearestCoprimeFloor((long)0, (long)0), "long"); }
public void NearestCoprimeFloorNeg2And0ShouldReturn0() { Assert.AreEqual(0, PrimeMath.NearestCoprimeFloor((int)-2, (int)0), "int"); Assert.AreEqual(0, PrimeMath.NearestCoprimeFloor((long)-2, (long)0), "long"); }
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"); }
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"); } } }
public void IsCoPrimeEqualButOppositeSignValuesShouldReturnTrue() { Assert.AreEqual(false, PrimeMath.IsCoprime((int)-11, (int)11), "int"); Assert.AreEqual(false, PrimeMath.IsCoprime((long)-11, (long)11), "long"); }
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"); }
/// <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);