Cod sursa(job #2216784)

Utilizator AlexDabuDabu Alexandru AlexDabu Data 27 iunie 2018 21:51:59
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MAX 2000003

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int N, nrPrim = 1;
bool prim[MAX];

void read(void)
{
	fin >> N;
}

void ciur(void)
{
	if (N >= 2)
	{
		nrPrim = 1;
	}
	else
	{
		nrPrim = 0;
	}
	for (int i = 3; i < sqrt(N); i += 2)
	{
		if(!prim[i])
			for (int j = i * i; j < N; j += i)
			{
				prim[j] = true;
			}
	}
	for (int i = 3; i <= N; i += 2)
	{
		if (!prim[i])
		{
			nrPrim++;
		}
	}
}

void print(void)
{
	fout << nrPrim;
}

int main(void)
{
	read();
	ciur();
	print();
	return 0;
}