Cod sursa(job #2310533)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 1 ianuarie 2019 05:37:39
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin ("ciur.in");
ofstream fout ("ciur.out");

bool a[20000003];
int cnt, N;
int prime[1000000];

void Eratosthenes_Sieve()
{
   int i, j, d;

   for (i = 3; i*i <= 2000000; i = i + 2)
   {
	if (a[i] == 0)
	for (j = i*i; j <= 2000000; j = j + 2*i)
		a[j] = 1;
   }

   prime[++cnt] = 2;
   for (i = 3; i <= 2000000; i = i + 2)
	if (a[i] == 0)
		prime[++cnt] = i;
}

int main ()
{
   Eratosthenes_Sieve();
   int i;
   fin >> N;
   for (i = 1; i <= cnt && prime[i] <= N; i++)
	;

   fout << --i << endl;
   return 0;
}