#include <iostream>
using namespace std;
//PRIME SIEVE & OPTIMISATIONS
void primeSieve(int *p,int n){
p[0] = p[1] = 0;
p[2] = 1;
//Let us Mark all Odd Numbers as Prime(Initialisations)
for(int i=3;i<=n;i+=2){
p[i] = 1;
}
//Sieve Login to mark non prime numbers as 0
//1. Optimsation : Iterate only over odd Numbers
for(int i=3;i<=n;i+=2){
if(p[i]){
//Mark all the multiples of that number as not prime.
//2. Optimisation Take a jump of 2i starting from i*i
for(int j=i*i;j<=n;j+=2*i){
p[j] = 0;
}
}
}
return;
}
int main() {
int N = 1000000;
int p[N] = {0};
primeSieve(p,100);
for(int i=0;i<=100;i++){
if(p[i]){
cout<<i<<" ";
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy9QUklNRSBTSUVWRSAmIE9QVElNSVNBVElPTlMKCgp2b2lkIHByaW1lU2lldmUoaW50ICpwLGludCBuKXsKCiAgICBwWzBdID0gcFsxXSA9IDA7CiAgICBwWzJdID0gMTsKCiAgICAvL0xldCB1cyBNYXJrIGFsbCBPZGQgTnVtYmVycyBhcyBQcmltZShJbml0aWFsaXNhdGlvbnMpCiAgICBmb3IoaW50IGk9MztpPD1uO2krPTIpewogICAgICAgIHBbaV0gPSAxOwogICAgfQoKICAgIC8vU2lldmUgTG9naW4gdG8gbWFyayBub24gcHJpbWUgbnVtYmVycyBhcyAwCiAgICAvLzEuIE9wdGltc2F0aW9uIDogSXRlcmF0ZSBvbmx5IG92ZXIgb2RkIE51bWJlcnMKICAgIGZvcihpbnQgaT0zO2k8PW47aSs9Mil7CiAgICAgICAgCiAgICAgICAgaWYocFtpXSl7CiAgICAgICAgICAgIC8vTWFyayBhbGwgdGhlIG11bHRpcGxlcyBvZiB0aGF0IG51bWJlciBhcyBub3QgcHJpbWUuCiAgICAgICAgICAgIC8vMi4gT3B0aW1pc2F0aW9uIFRha2UgYSBqdW1wIG9mIDJpIHN0YXJ0aW5nIGZyb20gaSppCiAgICAgICAgICAgIGZvcihpbnQgaj1pKmk7ajw9bjtqKz0yKmkpewogICAgICAgICAgICAgICAgcFtqXSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfQogICAgcmV0dXJuOwp9CgoKCgppbnQgbWFpbigpIHsKICAgIGludCBOID0gMTAwMDAwMDsKICAgIGludCBwW05dID0gezB9OwogICAgcHJpbWVTaWV2ZShwLDEwMCk7CiAgICBmb3IoaW50IGk9MDtpPD0xMDA7aSsrKXsKICAgICAgICBpZihwW2ldKXsKICAgICAgICAgICAgY291dDw8aTw8IiAiOwogICAgICAgIH0KICAgIH0KCn0K