Пример #1
0
        static void Main(string[] args)
        {
            int result;

            Console.WriteLine(
                "Solution computed in {0}",
                FrameworkUtilities.Measure(() =>
            {
                var qualifications = new Qualification[uBound - lBound + 1];
                for (int i = lBound; i <= uBound; i++)
                {
                    qualifications[i - lBound] = GetQualification(i);
                }

                var abundants = qualifications.SelectWithPosition(
                    (q, i) => new { q, Nbr = i + lBound - 1 }
                    ).Where(a => a.q == Qualification.Abundant).Select(a => a.Nbr).ToList();
                var crossSumOfAbundants = from x1 in abundants
                                          from x2 in abundants
                                          select x1 + x2;

                var excepts = Enumerable.Range(1, uBound).Except(crossSumOfAbundants);
                return(excepts.Sum());
            },
                                           out result));
            Console.WriteLine(result);

            Console.ReadLine();
        }