public void PrimeFactoringTest() { var pr = new PrimeNumber((int)1e7); pr.PrimeFactoring(1 << 16).Should().Equal(new Dictionary <int, int> { { 2, 16 }, }); pr.PrimeFactoring(2 * 3 * 5).Should().Equal(new Dictionary <int, int> { { 2, 1 }, { 3, 1 }, { 5, 1 }, }); pr.PrimeFactoring(99991).Should().Equal(new Dictionary <int, int> { { 99991, 1 }, }); pr.PrimeFactoring(2147483647).Should().Equal(new Dictionary <int, int> { { 2147483647, 1 }, }); pr.PrimeFactoring(132147483703).Should().Equal(new Dictionary <long, int> { { 132147483703, 1 }, }); pr.PrimeFactoring(903906555552).Should().Equal(new Dictionary <long, int> { { 2, 5 }, { 3, 8 }, { 7, 1 }, { 11, 2 }, { 13, 1 }, { 17, 1 }, { 23, 1 }, }); }