#!/usr/local/bin/pike// -*- mode: pike -*-
// $Id: sieve.pike,v 1.9 2001/05/06 04:37:45 doug Exp $
// http://www.bagley.org/~doug/shootout/
// from: Per Hedbor
void main(int argc, array(string) argv)
{
array(int) flags;
int i, k, count, num;
num = (int)argv[-1];
if (num < 1)
num = 1;
while (num--) {
count = 0;
flags = ({ 1 })*8193;
for (i=2; i <= 8192; i++) {
if (flags[i]) {
for (k=i+i; k <= 8192; k+=i)
flags[k] = 0;
count++;
}
}
}
write("Count: %d\n", count);
}