/// <summary> /// Solve the problem /// </summary> /// <returns>The sum result</returns> private long Solve() { long sum = 0; this.Amicables = new List <long>(); this.NotAmicables = new List <long>(); AmicableNumber num; for (int i = 2; i <= this.Limit; i++) { if (!this.Amicables.Contains(i) && !this.NotAmicables.Contains(i)) { num = new AmicableNumber(i); if (num.IsAmicable) { this.Amicables.Add(num.Number); this.Amicables.Add(num.Amicable); } else { if (!this.NotAmicables.Contains(num.Number)) { this.NotAmicables.Add(num.Number); } if (!this.NotAmicables.Contains(num.Amicable)) { this.NotAmicables.Add(num.Amicable); } } } sum = this.Amicables.Sum <long>(x => x); } return(sum); }
public static long SumOfAmicableNumbersUnder10000() { long sum = 0; for (int i = 1; i < 10000; i++) { if (AmicableNumber.IsAmicable(i)) { sum += i; } } return(sum); }
public void AmicableNumber_220() { Assert.True(AmicableNumber.IsAmicable(220)); }
public void AmicableNumber_284() { Assert.True(AmicableNumber.IsAmicable(284)); }