C#

This program is essentially identical to the C++ implementation, except for the framing and the I/O statements. C#, Java, C++ and C are quite difficult to distinguish from one another.

This program compiles and runs under Visual Studio 2005.


using System;


using System.Collections.Generic;


using System.Text;



//////////////////////////////////////////////////////////


// Name: Peter M. Maurer


// Program: Sieve of Eratosthenes


// Due: Never


// Language: C#


//////////////////////////////////////////////////////////



namespace ConsoleApplication1


{


class Program


{


static void Main(string[] args)


{


int[] Candidates = new int[1000];


int i;


for (i = 0; i < 1000; i++)


{


// everything is potentially prime until proven otherwise


Candidates[i] = 1;


}


// Neither 1 nor 0 is prime, so flag them off


Candidates[0] = 0;


Candidates[1] = 0;


// start the sieve with the integer 0


i = 0;


while (i < 1000)


{


// advance to the next un-crossed out number.


// this number must be a prime


while (i < 1000 && Candidates[i] == 0)


{

i++;


}


// insure against running off the end of the data structure


if (i < 1000)


{


// cross out all multiples of the prime, starting with 2*p.


int j;


for (j = 2; j * i < 1000; j++)


{


Candidates[j * i] = 0;


}


// advance to the next candidate


i++;


}


}


// all uncrossed-out numbers are prime (and only those numbers)


// print all primes


for (i = 0; i < 1000; i++)


{


if (Candidates[i] != 0)


{


Console.Write(i);


Console.WriteLine(" is prime");


}


}


}


}


}

Click Here for the actual code.