Cod sursa(job #1690953)

Utilizator andreilucaLuca Andrei andreiluca Data 16 aprilie 2016 13:12:14
Problema Ciurul lui Eratosthenes Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define NMAX 2000003
FILE *in, *out;
bool prime[NMAX];
void solve();
int main()
{
	in = fopen("ciur.in", "r");
	out = fopen("ciur.out", "w");
	solve();
	return 0;
}
void solve()
{
	int n;
	int x;
	int k;
	fscanf(in,"%d",&n);
	for (int i = 2; i < n; i++)
	{
		if (prime[i]!=-1)
		{
			k = 2;
			x = i*k;
			
			while (x < n)
			{
				prime[x] = -1;
				++k;
				x = i*k;

			}
		}
	}
	int contor = 0;
	for (int i = 2; i < n;i++)
	if (prime[i] == 0)
		contor++;
	fprintf(out, "%d\n", contor);

}