Cod sursa(job #1131814)

Utilizator prog504prog504 prog504 Data 1 martie 2014 16:43:09
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
#include <cmath>

bool prime[2000001];

int main() {
	freopen("ciur.in", "rt", stdin);
	freopen("ciur.out", "wt", stdout);

	int n;
	scanf("%d", &n);

	prime[0] = false;
	prime[1] = false;
	for (int i = 2; i <= n; ++i) {
		prime[i] = true;
	}

	int s = sqrt(n);
	for (int p = 2; p <= s; ++p) {
		if (prime[p]) {
			for (int i = p * 2; i <= n; i += p) {
				prime[i] = false;
			}
		}
	}

	int count = 0;
	for (int i = 1; i <= n; ++i) {
		if (prime[i]) {
			count++;
		}
	}

	printf("%d\n", count);
}