Cod sursa(job #1372275)

Utilizator Mihai7Gheoace Mihai Mihai7 Data 4 martie 2015 12:32:46
Problema Ciurul lui Eratosthenes Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<cstdio>
#define MAXSIZE 500001
char p[MAXSIZE];
using namespace std;
int prim(int n)
{int i, j, nr = 1;
for (i = 1; (i*i<<1)+(i<<1)<= n; i+=1)
	{if (p[i] == 0) 
		{
		  for (j = (i*i<<1)+(i<<1);(j<<1)+1 <= n; j+=(i<<1)+1) 
			p[j] = 1;
		}
	}
	for(i=1;(i<<1)+1<=n;++i)
		if(p[i]==0)
			++nr;
	return nr;
}
int main()
{
FILE *f=freopen("ciur.in","r",stdin),*g=freopen("ciur.out","w",stdout);
int n;fscanf(f,"%d",&n);
 fprintf(g,"%d",prim(n));
}