Cod sursa(job #2020324)

Utilizator bcrisBianca Cristina bcris Data 9 septembrie 2017 21:22:58
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>
#include <math.h>

#define NMAX 2000000
int n, prime[NMAX];

int main() {
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);

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

	if (n == 0 || n == 1) {
		printf("%d\n", 0);
		return 0;
	} else if (n == 2) {
		printf("%d\n", 1);
		return 0;
	}

	int primes = 1;	

	for (int i = 3; i < n; i += 2)
		if (prime[i] == 0) {
			primes++;
			for (int j = i + i; j < n; j += i) {
				prime[j] = 1;
			}
		}

	printf("%d\n", primes);

	return 0;
}