D

This is the D language from Digital Mars. At this level it is essentially indistinguishable from C. The only differences are that the line "#include <stdio.h>" is replaced with "import std.stdio;", the declaration of the array Candidates is slightly different, the function printf is replaced with writefln, and no newline appears in the printed string.

This program compiles and runs on the Digital Mars D compiler for Windows.


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


// Name: Peter M. Maurer


// Program: Sieve of Eratosthenes


// Due: Never


// Language: D


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



import std.stdio;



int main()


{


// define the sieve data structure


int[1000] Candidates;


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)


{


writefln("%d is prime",i);


}


}


return 0;


}

Click Here for the actual code.