Cod sursa(job #1198050)
| Utilizator | Data | 14 iunie 2014 13:25:29 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <bitset>
#include <algorithm>
#define NN 2000009
using namespace std;
ofstream out("ciur.out");
int n ;
int sol;
bitset < NN > uz;
void erat();
int main()
{
ifstream in("ciur.in");
erat();
in >> n;
for(int i=1; i<=n ; i++)
if( !uz[i] )
++sol;
out << sol << '\n';
return 0;
}
void erat()
{
uz[1] = 1;
for( int i=2 ; i <=NN ; ++i )
if( !uz[i] )
{
for( int j=( i<<1 ) ; j<=NN ; j+=i)
uz[j] = 1;
}
}
