Example #1
0
        /// <summary>
        /// https://projecteuler.net/problem=73
        /// </summary>
        /// <param name="arguments"></param>
        /// <returns></returns>
        public static Result CountingFractionsInRange(Problem arguments)
        {
            var d      = arguments.IntNumber;
            var bounds = arguments.ListOfNumbers;
            var begin  = new UtilityMath.Fraction(bounds[0], bounds[1]);
            var end    = new UtilityMath.Fraction(bounds[2], bounds[3]);

            var list   = UtilityMath.GenerateFareySequence(d);
            var count  = list.Count(fraction => fraction > begin && fraction < end);
            var answer = count.ToString();

            var message = string.Format("The number of fractions lie between {0} and {1} in the sorted set of reduced proper fractions for d ≤ {2} is {3}.", begin.ToString(), end.ToString(), d, answer);

            if (Answers[arguments.Id] != answer)
            {
                message += string.Format(" => INCORRECT ({0})", Answers[arguments.Id]);
            }
            var r = new Result(arguments.Id, message)
            {
                Answer = answer
            };

            return(r);
        }