/* The Great Win32 Language Shootout http://dada.perl.it/shootout/ contributed by Isaac Gouy (Nice novice) To compile: nicec --sourcepath=.. -d=. -a sieve.jar sieve To run: java -jar sieve.jar 900 */ // NOTE: the type of constants & variables declared with // let & var will be inferred by the compiler import ackermann; // reuse toSingleInt void main(String[] args){ var n = toSingleInt(args); let start = 2; let stop = 8192; var isPrime = new boolean[stop+1]; var count = 0; while (n-- > 0){ count = 0; for(var i=start; i <= stop; i++) isPrime[i] = true; for(var i=start; i <= stop; i++) if(isPrime[i]) { // remove all multiples of prime: i for(var k=i+i; k <= stop; k+=i) isPrime[k] = false; count++; } } println("Count: " + count); }