Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class Program
- {
- static IEnumerable<int> Integers(int from)
- {
- for (;;)
- {
- yield return from;
- from += 1;
- }
- }
- static IEnumerable<int> Helper(int p, IEnumerable<int> xs)
- {
- foreach (var x in xs)
- {
- if (x % p != 0)
- yield return x;
- }
- }
- static IEnumerable<int> Sieve(IEnumerable<int> seq)
- {
- var p = seq.First();
- var xs = seq.Skip(1);
- yield return p;
- foreach (var x in Sieve(Helper(p, xs)))
- yield return x;
- }
- static void Main(string[] args)
- {
- var primes = Sieve(Integers(2));
- foreach (var prime in primes.Take(20))
- Console.WriteLine(prime);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement