Pagini recente » Istoria paginii onis-2015/clasament/runda-3 | Istoria paginii planificare/sedinta-20080303 | Monitorul de evaluare | Olimpiada Nationala pentru Studenti 2014 | Cod sursa (job #144707)
Cod sursa(job #144707)
#include <cstdio>
int a[2000000/2/8+1];
int main ()
{
freopen ("ciur.in","r",stdin);
freopen ("ciur.out","w",stdout);
int i,j,n,k=1;
scanf ("%d",&n);
printf ("2,");
for (i=1; ((i*i)<<1)+(i<<1)<=n; ++i)
if (!(a[i>>3]&(1<<(i&7))))
for (j=((i*i)<<1)+(i<<1); (j<<1)+1<= n; j+=(i<<1)+1)
{
a[j>>3]|=(1<<(j&7));
}
for (i=1; (i<<1)+1<=n; ++i)
if (!(a[i>>3]&(1<<(i&7))))
++k;
printf ("\n%d",k);
for (i=1; (i<<1)+1<=n; ++i)
if (!(a[i>>3]&(1<<(i&7))))
printf ("%d,",(i<<1)+1);
return 0;
}