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); }