Esempio n. 1
0
        /// <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));
 }