public IHttpActionResult GetPrimeNumbers(int id) { var primeNumberViewModel = new PrimeNumberViewModel(); var primeNumbers = Enumerable.Range(1, Convert.ToInt32(Math.Floor(Math.Sqrt(id)))) .Aggregate(Enumerable.Range(1, id).ToList(), (result, index) => { result.RemoveAll(i => i > result[index] && i % result[index] == 0); return(result); } ); primeNumberViewModel.TargetNumber = id; primeNumberViewModel.PrimeNumbers = primeNumbers; return(Ok(primeNumberViewModel)); }
public IHttpActionResult AltGetPrimeNumbers(int id) { var primeNumberViewModel = new PrimeNumberViewModel(); var primeNumbers = Enumerable.Range(1, (int)Math.Floor(2.52 * Math.Sqrt(id) / Math.Log(id))).Aggregate( Enumerable.Range(1, id).ToList(), (result, index) => { var bp = result[index]; var sqr = bp * bp; result.RemoveAll(i => i >= sqr && i % bp == 0); return(result); } ); primeNumberViewModel.TargetNumber = id; primeNumberViewModel.PrimeNumbers = primeNumbers; return(Ok(primeNumberViewModel)); }