Ejemplo n.º 1
0
        public void Solve()
        {
            int i = 4;
            List<Amicable> sums = new List<Amicable>();

            while (i < 10000)
            {
                var result = new Amicable();
                result.number = i;

                for (int y = 1; y <= Math.Sqrt(i); y++)
                {
                    if ((i % y) == 0)
                    {
                        result.product.Add(y);

                        if (y != 1)
                            result.product.Add(i / y);
                    }
                }
                sums.Add(result);
                i++;
            }

            foreach (var item in sums)
            {
                if (item.sum < 10000)
                {
                    checkIfAmicable(sums, item);
                }
            }

            List<Amicable> myResults = sums.Where(x => x.isAmicable).ToList();

            Console.WriteLine("Solution for problem 21: {0}", myResults.Sum(x => x.number));
        }
Ejemplo n.º 2
0
 private void checkIfAmicable(List<Amicable> myList, Amicable value)
 {
     var y = myList.SingleOrDefault(x => (x.number == value.sum && x.number != x.sum));
     if (y != null)
         value.isAmicable = (y.number == value.sum && value.number == y.sum);
 }