Skip to content

Instantly share code, notes, and snippets.

@markthiessen
Created November 20, 2012 05:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markthiessen/4116270 to your computer and use it in GitHub Desktop.
Save markthiessen/4116270 to your computer and use it in GitHub Desktop.
Fetch Primes C#
public class PrimeFetcher
{
public IEnumerable<int> FetchPrimesUpTo(int max)
{
if (max <= 1)
return Enumerable.Empty<int>();
var range = Enumerable.Range(0, max + 1).ToArray();
range[1] = 0;
foreach (var number in range.Where(n => n != 0 && n <= max / 2))
{
foreach (var multiple in GetMultiples(number, max))
range[multiple] = 0;
}
return range.Where(number => number != 0);
}
private static IEnumerable<int> GetMultiples(int number, int max)
{
return Enumerable.Range(2, max / number).Select(multiplier => multiplier * number).Where(result => result <= max);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment