using System;
public class Program
{
static void Main(string[] args)
{
var results = GenerateSieve(1000);
var i=0;
foreach (var item in results)
{
if(item) Console.Write(i + " ");
i++;
}
}
static bool[] GenerateSieve(int num)
{
// Creating an array indicating whether numbers are prime.
bool[] isPrime = new bool[num + 1];
for (int i = 2; i <= num; i++) isPrime[i] = true;
// Removing out multiples.
for (int i = 2; i <= num; i++)
{
// Check if i is prime.
if (isPrime[i])
{
// Eliminate multiples of i.
for (int j = i * 2; j <= num; j += i)
isPrime[j] = false;
}
}
return isPrime;
}
}
dXNpbmcgU3lzdGVtOwpwdWJsaWMgY2xhc3MgUHJvZ3JhbQp7CiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdHMgPSBHZW5lcmF0ZVNpZXZlKDEwMDApOwogICAgICAgIHZhciBpPTA7CiAgICAgICAgZm9yZWFjaCAodmFyIGl0ZW0gaW4gcmVzdWx0cykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGl0ZW0pIENvbnNvbGUuV3JpdGUoaSArICIgIik7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICB9CgogICAgc3RhdGljIGJvb2xbXSBHZW5lcmF0ZVNpZXZlKGludCBudW0pCiAgICB7CiAgICAgICAgLy8gQ3JlYXRpbmcgYW4gYXJyYXkgaW5kaWNhdGluZyB3aGV0aGVyIG51bWJlcnMgYXJlIHByaW1lLgogICAgICAgIGJvb2xbXSBpc1ByaW1lID0gbmV3IGJvb2xbbnVtICsgMV07CiAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbnVtOyBpKyspIGlzUHJpbWVbaV0gPSB0cnVlOwogICAgICAgIAogICAgICAgIC8vIFJlbW92aW5nIG91dCBtdWx0aXBsZXMuCiAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbnVtOyBpKyspCiAgICAgICAgewogICAgICAgICAgICAvLyBDaGVjayBpZiBpIGlzIHByaW1lLgogICAgICAgICAgICBpZiAoaXNQcmltZVtpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy8gRWxpbWluYXRlIG11bHRpcGxlcyBvZiBpLgogICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKiAyOyBqIDw9IG51bTsgaiArPSBpKQogICAgICAgICAgICAgICAgICAgIGlzUHJpbWVbal0gPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gaXNQcmltZTsKICAgIH0KfQ==