Cod sursa(job #669244)

Utilizator Victor10Oltean Victor Victor10 Data 26 ianuarie 2012 17:32:59
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include <cstdio>
#include <cmath>
int c[2000005];
int main(){
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	int n,k=1,i,i2;
	scanf("%d ",&n);
	for( i=2 ; i<=n ; i+=2 )
		c[i]=1;
	for(i=3 ; i<=sqrt(n) ; i+=2 ){
		if( !c[i] ){ //daca c[i] nu e prim
			for( i2 = i+i ; i2<=n; i2+=i )
				c[i2]=1;
		}
	}
	for( i=3 ; i<=n; ++i )
		if(!c[i]) ++k;
	printf("%d ",k);
}