Pagini recente » Cod sursa (job #2298015) | Cod sursa (job #2097748) | Cod sursa (job #1017431) | Cod sursa (job #1108646) | Cod sursa (job #485980)
Cod sursa(job #485980)
#include <fstream>
#include <math.h>
long numere[2000000];
using namespace std;
/*
void ciur_eratostene(int n)
{
int i,j, q;
q=sqrt(n);
for(i=2; i<=3; i++)
for(j=i; j<=n/2; j++)
numere[j*i]=1;
for(i=5; i<=q; i=(i << 1)+1)
for(j=i; j<=q; j=(j << 1)+1)
numere[j*i]=1;
return;
}
*/
long ciur_eratostene(long n)
{
int i, j;
long contor=1;
for(i=3; i<=n; i+=2)
if(!numere[i])
{
contor++;
for(j=i+i+i; j<=n; j+=i+i)
numere[j]=1;
}
return contor;
}
int main(void)
{
ifstream fin("ciur.in");
ofstream fout("ciur.out");
long n;
long k;
fin>>n;
k=ciur_eratostene(n);
fout<<k<<'\n';
return 0;
}