|       | The Sieve query operator. | Lecture 16 - slide 11 : 11 Program 1 | 
| using System;
using System.Collections.Generic;
using System.Linq;
public static class IEnumerableExtension {
  public static IEnumerable<long> Sieve(this IEnumerable<long> source){
      long first = source.First();
      yield return first;
      foreach (long i in source.Where(n => n % first != 0)
                               .Sieve()){
         yield return i;
      }
  }
} |