Pagini recente » Cod sursa (job #337213) | Cod sursa (job #1838526) | Cod sursa (job #2458203) | Cod sursa (job #1785653) | Cod sursa (job #159306)
Cod sursa(job #159306)
#include<fstream.h>
ifstream f("ciur.in");
ofstream g("ciur.out");
char prim[1000005];
long long n,p;
//long long prost[1001];
int main()
{f>>n;
int j,i=1,prostie;
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;
/* //int k=0;
if(nr<=1000)
{g<<2<<' ';
nr--;
for(i=1;nr>0;i++)
if(prim[i]==0) {g<<2*i+1<<' ';nr--;}
}
else {if(n%2==1) i=n/2;
else i=n/2-1;
int cnt=1000;
while(cnt>0)
{if(prim[i]==0)
{cnt--;
//prost[++k]=2*i+1;
}
i--;}
while(prim[i]==1) i++;
g<<2*i+1<<' ';
i++;
//prostie=0;
cnt=1;
for(;cnt<1000;i++)
if(prim[i]==0) {g<<2*i+1<<' ';cnt++;}
//while(k>0) g<<prost[k--]<<' ';
}
//g<<endl<<prostie;
*/
f.close();
g.close();
return 0;
}