예제 #1
0
        public void TestGetPrimeFactors(int n, int[] expectedPrimeFactors)
        {
            var factorization = new Factorization();
            var primeFactors  = factorization.GetPrimeFactors(n).OrderBy(n => n).ToArray();

            Assert.AreEqual(expectedPrimeFactors.Length, primeFactors.Length);
            for (int i = 0; i < primeFactors.Length; i++)
            {
                Assert.AreEqual(expectedPrimeFactors[i], primeFactors[i]);
            }
        }
예제 #2
0
        public void GetPrimeFactors_Examples_AreCorrect(ulong value, ulong[] expectedPrimeFactors)
        {
            var actual = Factorization.GetPrimeFactors(value, new Eratosthenes()).ToArray();

            CollectionAssert.AreEquivalent(expectedPrimeFactors, actual);
        }
예제 #3
0
        [TestCase(13195UL, 29UL)] // The prime factors of 13195 are 5, 7, 13 and 29.
        public void GetPrimeFactors_LargestPrimeFactorOfExample_IsCorrect(ulong value, ulong expected)
        {
            var actual = Factorization.GetPrimeFactors(value, new Eratosthenes()).Max();

            Assert.AreEqual(expected, actual);
        }
예제 #4
0
 private static ulong Solution()
 {
     return(Factorization.GetPrimeFactors(600851475143, new Eratosthenes()).Max());
 }