Pagini recente » Cod sursa (job #1696477) | Cod sursa (job #130414) | Cod sursa (job #1275763) | Cod sursa (job #1905935) | Cod sursa (job #149624)
Cod sursa(job #149624)
#include<fstream.h>
ifstream f("ciur.in");
ofstream g("ciur.out");
char prim[1000005];
long long n,p;
int main()
{f>>n;
int j,i=1;
int nr=2;
int prod=(2*i+1)*(2*i+1);
int ceva=2*i+1;
while(prod<n)
{for(j=(prod-1)/2;j<=n/2;j+=ceva)
prim[j]=1;
i++;
while(prim[i]==1) i++;
prod=(2*i+1)*(2*i+1);
ceva=2*i+1;
nr++;
}
for(i=i+1;i<n/2;i++)
if(prim[i]==0) nr++;
g<<nr<<'\n';
if(nr<=1000)
{g<<2;
for(i=1;i<n/2;i++)
if(prim[i]==0) g<<' '<<2*i+1;
}
else {i=n/2;
int cnt=1000;
while(cnt>0)
{if(prim[i]==0)
cnt--;
i--;}
while(prim[i]==1) i++;
g<<2*i+1;
i++;
for(;cnt<1000;i++)
if(prim[i]==0) {g<<' '<<2*i+1;cnt++;}
}
f.close();
g.close();
return 0;
}