Cod sursa(job #1784026)
| Utilizator | Data | 19 octombrie 2016 18:32:31 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#include <cstring>
using namespace std;
ifstream is("ciur.in");
ofstream os("ciur.out");
void Ciur();
int n, nr;
bool b[2000001];
int main()
{
is >> n;
Ciur();
os << nr;
is.close();
os.close();
return 0;
}
void Ciur()
{
//memset(b, 1, sizeof(b));
/*
reverse
b[i] == false => i prime
b[i] == true => i not prime
*/
b[0] = b[1] = true;
for ( int i = 2; i <= n; ++i )
if ( !b[i] )
{
nr++;
//os << i << '\n';
for ( int j = 1; j * i <= n; ++j )
b[i*j] = true;
}
}
