Cod sursa(job #2512683)
| Utilizator | Data | 21 decembrie 2019 13:06:05 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
#include <bitset>
#define Nmax 2000005
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int n, contor;
bitset < Nmax > b;
void ciur ();
int main()
{
fin >> n;
ciur();
for ( int i = 1; i <= n; i++ )
if ( b[i] == 0 )
contor++;
fout << contor;
return 0;
}
void ciur ()
{
b[1]=b[0]=1;
for ( int i = 4; i <=Nmax; i+=2 )
b[i] = 1;
for ( int i = 3; i*i <= Nmax; i+=2 )
if ( b[i] == 0 )
for ( int j = i*i; j <=Nmax; j+=i )
b[j] = 1;
}
