Cod sursa(job #634037)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 15 noiembrie 2011 15:25:35
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include<cstdio>
#include<bitset>
#include<vector>
using namespace std;
//bitset<500000> a;
int a[100];
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;
}