public void GetDivisors_InputIsValid_ReturnsDivisors() { Divisors.GetDivisors(1).ShouldBeSubsetOf(new List <int> { 1 }); Divisors.GetDivisors(2).ShouldBeSubsetOf(new List <int> { 1, 2 }); Divisors.GetDivisors(3).ShouldBeSubsetOf(new List <int> { 1, 2, 3 }); Divisors.GetDivisors(4).ShouldBeSubsetOf(new List <int> { 1, 2, 4 }); Divisors.GetDivisors(5).ShouldBeSubsetOf(new List <int> { 1, 5 }); Divisors.GetDivisors(9).ShouldBeSubsetOf(new List <int> { 1, 3, 9 }); Divisors.GetDivisors(10).ShouldBeSubsetOf(new List <int> { 1, 2, 5, 10 }); Divisors.GetDivisors(11).ShouldBeSubsetOf(new List <int> { 1, 11 }); Divisors.GetDivisors(13).ShouldBeSubsetOf(new List <int> { 1, 13 }); Divisors.GetDivisors(20).ShouldBeSubsetOf(new List <int> { 1, 2, 4, 5, 10, 20 }); }
private bool IsAbundantNumber(int number) { int sum = 0; foreach (int divisor in Divisors.GetDivisors(number)) { sum += divisor; } return(sum > number); }
private int GetDofN(int number) { if (memo.ContainsKey(number)) { return(memo[number]); } int sum = 0; foreach (int divisor in Divisors.GetDivisors(number)) { sum += divisor; } memo.Add(number, sum); return(sum); }
public void GetDivisors_InputIsInvalid_ThrowsException(int number) { ShouldThrowExtensions.ShouldThrow <ArgumentException>(() => Divisors.GetDivisors(number)); }