/* Sieve of Eratosthenes prime numbers */
import std.stdio;
bool[8191] flags;
int main() {
int i, count, prime, k, iter;
writefln("10 iterations");
for (iter = 1; iter <= 10; iter++) {
count = 0;
flags[] = 1;
for (i = 0; i < flags.length; i++) {
if (flags[i]) {
prime = i + i + 3;
k = i + prime;
while (k < flags.length) {
flags[k] = 0; k += prime;
}
count += 1;
}
}
}
writefln("%d primes", count);
return 0;
}
LyogU2lldmUgb2YgRXJhdG9zdGhlbmVzIHByaW1lIG51bWJlcnMgKi8gCgppbXBvcnQgc3RkLnN0ZGlvOyAKCmJvb2xbODE5MV0gZmxhZ3M7IAoKaW50IG1haW4oKSB7IAoJaW50IGksIGNvdW50LCBwcmltZSwgaywgaXRlcjsgCgl3cml0ZWZsbigiMTAgaXRlcmF0aW9ucyIpOyAKCWZvciAoaXRlciA9IDE7IGl0ZXIgPD0gMTA7IGl0ZXIrKykgewkKCQljb3VudCA9IDA7IAoJCWZsYWdzW10gPSAxOyAKCQlmb3IgKGkgPSAwOyBpIDwgZmxhZ3MubGVuZ3RoOyBpKyspIHsgCgkJCWlmIChmbGFnc1tpXSkgewkKCQkJCXByaW1lID0gaSArIGkgKyAzOyAKCQkJCWsgPSBpICsgcHJpbWU7IAoJCQkJd2hpbGUgKGsgPCBmbGFncy5sZW5ndGgpIHsgCgkJCQkJZmxhZ3Nba10gPSAwOyBrICs9IHByaW1lOyAKCQkJCX0gCgkJCQljb3VudCArPSAxOyAKCQkJfSAKCQl9IAoJfSAKCXdyaXRlZmxuKCIlZCBwcmltZXMiLCBjb3VudCk7IAoJcmV0dXJuIDA7IAp9