Pagini recente » Cod sursa (job #439549) | Cod sursa (job #586855) | Cod sursa (job #644178) | Cod sursa (job #2095543) | Cod sursa (job #1454610)
#include <fstream>
#include <math.h>
using namespace std;
char ciur[2000005>>6+1];
#define isComposite(n) (ciur[n>>6]&(1<<((n>>1)&31)))
#define makeComposite(n) (ciur[n>>6] |= (1<<((n>>1)&31)))
int main()
{
int n,crossn,i,j,k,c;
ifstream f("ciur.in");
ofstream g("ciur.out");
f>>n;
crossn = sqrt(n);
c = 1;
for(i=3;i<crossn;i=i+2){
if(!isComposite(i)){
for(j=i*i,k=i<<1;j<n-1;j=j+k){
makeComposite(j);
}
}
}
for(i=3;i<n-1;i=i+2){
if(!isComposite(i)){
c++;
}
}
g<<c;
}