Cod sursa(job #1480620)

Utilizator dimavascan94VascanDumitru dimavascan94 Data 2 septembrie 2015 21:49:35
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;

int n,sqrtN,i,j,out;
bool ciur[2000005] = { false };

int main()
{
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);
	scanf("%d", &n);
	sqrtN = sqrt(n);

	j = 2;
	while ( (j += 2) <= n)	ciur[j] = true;

	for (i = 2; i <= sqrtN; i=i+2)
		if (!ciur[i])
		{
			j = i;
			while ( (j += 2*i) <= n)	ciur[j] = true;
		}

	for (i = 2; i < n;++i)	if(!ciur[i]) out++;

	printf("%d", out);
}