using System.Collections.Generic;
using System.Collections.Specialized;
private readonly BitVector32[] vector;
public BitVector(int size,bool fillZero = true)
int vectorArraySize = size >> 5;
vector = new BitVector32[vectorArraySize];
for(int i = 0; i < vectorArraySize; i++)
vector[i] = new BitVector32(-1);
public void ClearBit(int bitNum)
int offset = bitNum & 31;
int mask = (1 << offset);
vector[idx][mask] = false;
public bool testBit(int bitNum)
int offset = bitNum & 31;
int mask = (1 << offset);
return vector[idx][mask];
public void setBit(int bitNum)
int offset = bitNum & 31;
int mask = (1 << offset);
vector[idx][mask] = true;
foreach(BitVector32 val in vector)
Console.WriteLine("Values in BitVector : {0}",val.ToString());
public static void Main()
Console.WriteLine("List of Prime Numbers till 1171 : {0}", string.Join(",",ListOfPrimesSimple(1171)));
Console.WriteLine("List of Prime Numbers till 1171 : {0}", string.Join(",",ListOfPrimes(1171)));
public static bool IsPrime(int n)
if(n%2 == 0) return false;
int sqrt = (int)Math.Ceiling(Math.Sqrt(n));
for(int i = 3; i <= sqrt; i=i+2)
Console.WriteLine("Divisible by {0}",i);
public static List<int> ListOfPrimes(int n)
List<int> result = new List<int>();
BitVector v = new BitVector(n+1,false);
for(int i = 2; i <= n; i++)
public static List<int> ListOfPrimesSimple(int n)
List<int> result = new List<int>();
bool[] primes = new bool[n+1];
for(int i = 0; i <= n; i++)
for(int i = 2;i <= n; i++)