Cod sursa(job #669623)

Utilizator luca.boieruBoieru Luca luca.boieru Data 27 ianuarie 2012 14:40:01
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <cstdio>
#include <bitset>
using namespace std;

bitset <2000005> a;

int main(){
	
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);
	
	int n;
	scanf("%d", &n);
	
	for(int i = 2; i * i <= n; ++ i){
		if(!a[i]){
			for(int j = i * i; j <= n; j += i)
				a[j] = 1;
			
		}
	}
	int k = 0;
	for(int i = 1; i <= n; ++ i)
		if(!a[i]) ++ k;
	printf("%d",k - 1);
	return 0;
}