Untitled
unknown
plain_text
a year ago
3.0 kB
9
Indexable
---HTML-- <h2>Granville Numbers</h2> <br /> Enter a Positive Number: <input type="number" id="pos_number"/> <button id="subButton">Submit</button> <p id="ans_num">The Number is: </p> ---JS--- $().ready(function () { $('#subButton').click(function () { var pos_number = $('#pos_number').val(); if (!pos_number || isNaN(pos_number)) { alert("Please enter a valid positive number."); return; } $.post('../Home/postAjaxSample', { pos_number: pos_number, }, function (data) { if (data.error) { alert(data.error); } else { var result = data[0].isGranville ? 'Granville' : 'Not Granville'; $('#ans_num').text('The Number is: ' + result); } } ); }); }); ----CS-- public ActionResult AjaxSample() { return View(); } public ActionResult postAjaxSample() { var data = new List<object>(); var num = Request["pos_number"]; if (string.IsNullOrEmpty(num)) { return Json(new { error = "Missing number parameter" }, JsonRequestBehavior.AllowGet); } int number; if (!int.TryParse(num, out number)) { return Json(new { error = "Invalid number format" }, JsonRequestBehavior.AllowGet); } if (number > 0) { bool isGranville = IsGranvilleNumber(number); data.Add(new { number = number, isGranville = isGranville }); } else { return Json(new { error = "Number must be positive" }, JsonRequestBehavior.AllowGet); } return Json(data, JsonRequestBehavior.AllowGet); } private bool IsGranvilleNumber(int num) { if (num <= 1) { return false; } int divisorCount = 2; List<int> primeFactors = new List<int>(); for (int i = 3; i <= num / 2; i += 2) { if (num % i == 0) { divisorCount++; if (IsPrime(i)) { primeFactors.Add(i); } } } return divisorCount == num && primeFactors.Distinct().Count() == 3; } private bool IsPrime(int num) { if (num <= 1) { return false; } for (int i = 2; i <= Math.Sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } } }
Editor is loading...
Leave a Comment