Cod sursa(job #1829774)

Utilizator MihaiChirculeteChirculete Vlad Mihai MihaiChirculete Data 15 decembrie 2016 17:05:07
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.7 kb
/*
	Dandu-se un numar natural N, sa se determine numarul numerelor prime mai mici sau egale cu N.

	Date de intrare:	Fisierul de intrare ciur.in contine o singura linie pe care se afla numarul N.

	Date de iesire:		In fisierul ciur.out se va scrie pe prima linie raspunsul cerut
*/

#include <stdlib.h>
#include <stdio.h>

int numerePrime(int N)
{
	int n=0, i, j, k;
	char *prime;

	prime = calloc(N+1, sizeof(char));
	
	
	for(i=2; i<=N; i++)
	{
		if(prime[i] == 0)
		{
			k=i;
			n++;

			for(j=k*k; j<=N; j+=k)
				prime[j]=1;
		}
	}

	free(prime);	

	return n;
}

int main()
{
	int N;

	freopen("ciur.in", "r", stdin);
	scanf("%d", &N);

	freopen("ciur.out", "w", stdout);
	printf("%d", numerePrime(N));
	return 0;
}