Cod sursa(job #634038)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 15 noiembrie 2011 15:26:22
Problema Ciurul lui Eratosthenes Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include<cstdio>
#include<bitset>
#include<vector>
using namespace std;
bitset<500000> a;
int i,j,k,n,m,s=1;
int main()
{
	
	
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	scanf("%d",&n);
	if(n&1);else n--;
	m=(n-1)/2;
	for(i=1,j=3;j*j<=n;i++,j+=2)
	if(a[i]==0)
		for(k=(j*j-1)/2;k<=m;k+=j)
			a[k]=1;
	for(i=1;i<=m;i++)
		if(!a[i])s++;
	printf("%d",s);
	return 0;
}