public void FindGreatestDenominatorTest()
        {
            var finder  = new CommonDenominatorFinder();
            var request = new CommonDenominatorRequest()
            {
                UserDenominator1 = 5, UserDenominator2 = 10, UserNumerator1 = 1, UserNumerator2 = 1
            };
            var result = finder.FindDenominator(request);


            Assert.AreEqual(result.GCD, 5);
        }
        public ActionResult CommonDenominatorInput(CommonDenominatorModel request)
        {
            if (ModelState.IsValid)
            {
                var gcdFinder = new CommonDenominatorFinder();
                var gcdData   = new CommonDenominatorRequest();
                gcdData.UserNumerator1   = request.UserNumerator1;
                gcdData.UserDenominator1 = request.UserDenominator1;
                gcdData.UserNumerator2   = request.UserNumerator2;
                gcdData.UserDenominator2 = request.UserDenominator2;


                var result = gcdFinder.FindDenominator(gcdData);
                return(View("CommonDenominatorOutput", result));
            }
            else
            {
                return(View(request));
            }
        }
        public CommonDenominatorResponse FindDenominator(CommonDenominatorRequest request)
        {
            var response = new CommonDenominatorResponse();

            response.UserDenominator1 = request.UserDenominator1;
            response.UserDenominator2 = request.UserDenominator2;
            response.Min    = Math.Min(response.UserDenominator1, response.UserDenominator2);
            response.GCD    = 1;
            response.Holder = 1;



            while (response.Holder <= response.Min)
            {
                if (response.UserDenominator1 % response.Holder == 0 && response.UserDenominator2 % response.Holder == 0)
                {
                    response.GCD = response.Holder;
                }
                response.Holder++;
            }
            return(response);
        }