Cod sursa(job #546293)

Utilizator CipaFlorescu Ciprian Cipa Data 4 martie 2011 18:54:27
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<vector>
#include<cstdio>
using namespace std;

vector<bool> sir;

void mark(int i, int n)
{
	int j = 2 * i;
	while(j<=n)
	{
		sir[j] = 0;
		j += i;
	}
}

int main()
{
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	
	int n;
	scanf("%d",&n);
	
	sir.resize(n+5,1);
	int i=2;
	while(i<n)
	{
		if(sir[i] == 1)
			mark(i,n);
		i++;
	}
	
	int count = 0;
	for(int i=2;i<=n;i++)
		if(sir[i]==1)
			count ++;
	
	printf("%d\n",count);
			
		
	
}