Cod sursa(job #2229900)

Utilizator TrixerAdrian Dinu Trixer Data 8 august 2018 12:59:51
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>
#include <math.h>

#define NMAX 2000001

int n, r, count;
int sieve[NMAX];

int main()
{
	// read input
	freopen("ciur.in", "r", stdin);
	scanf("%d", &n);
	r = sqrt(n);
	
	// solve
	count = n - 1;
	for (int i = 2; i <= r; i++) {
		if (!sieve[i]) {
			for (int j = i * i; j <= n; j += i) {
				sieve[i] = 1;
				count--;
			}
		}
	}

	// print output
	freopen("ciur.out", "w", stdout);
	printf("%d", count);

	return 0;
}