sieve(n)
local limit, i, j, flags, count;
{
  limit= 8190;
  while (n > 0) {
    flags= new(limit);
    i= 0;
    while (i < limit) {
      flags[i]= 1;
      i= i+1;
    }
    count= 0;
    i= 2;
    while (i < limit) {
      if (flags[i] == 1) {
	j= i;
	count= count+1;
	while ((j= j+i) < limit)
	  flags[j]= 0;
      }
      i= i+1;
    }
  n= n-1;
  delete flags;
  }
 /*  i= 2; while (i < limit) { if (flags[i] == 1) print(i); i= i+1; } */
 return count;
}

doit() local i, result;
{
  i= 5;
  while (i != 0) {
    result= sieve(100);
    i= i-1;
  }
  return result;
}

main()
  return doit();
