Cod sursa(job #599296)

Utilizator mihai.ortelecanOrtelecan Mihai alexandru mihai.ortelecan Data 28 iunie 2011 14:35:13
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb
/*
 * ciur.c
 *
 *  Created on: Jun 28, 2011
 *      Author: mihai
 */

#include <stdio.h>
#include <stdlib.h>
int N;

int main() {

	freopen("ciur.in", "r", stdin);
	//freopen("ciur.out", "w", stdout);

	scanf("%d", &N);

	char* nr = (char*) calloc(N + 1, sizeof(char));

	int i = 2, j, nr_prime = 0;

	while (i * i <= N) {

		for (j = 2 * i; j <= N; j += i) {
			if (!nr[j]) {
				nr[j] = 1;
				if (j != i)
					nr_prime++;
			}
		}
		i++;
		while (nr[i])
			i++;

	}

	printf("%d", N - nr_prime - 1);
	return 0;
}