// $Id: sieve.elastic,v 1.0 2002/05/17 10:07:00 dada Exp $
package sieve;
import basic;
import sys;
import array;
private n = 1;
private i, k;
private result = 0;
private flags = #[];
private count;
if(array.length(sys.args) > 0) {
n = basic.int(sys.args[0]);
} else {
n = 1;
}
while(n--) {
count = 0;
for (i=2; i <= 8192; i++) {
flags[i] = 1;
}
for (i=2; i <= 8192; i++) {
if (flags[i]) {
// remove all multiples of prime: i
for (k=i+i; k <= 8192; k=k+i) {
flags[k] = 0;
}
count++;
}
}
}
basic.print("Count: ", count);