Pagini recente » Cod sursa (job #1126119) | Cod sursa (job #532332) | Cod sursa (job #2058427) | Cod sursa (job #2181345) | Cod sursa (job #2522087)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
#define dm 2000001
ifstream fin("ciur.in");
ofstream fout("ciur.out");
bool ciur[dm];
int er(int dmax){
int i, j, x, k=1;
x=dmax/2;
ciur[0]=ciur[1]=1;
for (i=2;i<=x;++i) ciur[2*i]=1;
for (i=3;i*i<=dmax;i+=2)
if (ciur[i]==0){
++k;
for (j=i*i;j<=dmax;j+=2*i)
ciur[j]=1;
}
return k;
}
int main(){
int n, k=1, i;
fin>>n;
k=er(n);
for (i=sqrt(n)+1;i<=n;++i)
if (ciur[i]==0) ++k;
fout<<k;
}