Cod sursa(job #2036536)
| Utilizator | Data | 10 octombrie 2017 19:46:44 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
#include <cmath>
using namespace std;
bool prim[2000002];
int n, rs;
ifstream cin ("ciur.in");
ofstream cout("ciur.out");
int main() {
cin >> n;
rs = n - 1;
int p = (int)sqrt(n);
for(int i = 2; i <= p; i++)
if(!prim[i])
for(int j = 2; i * j <= n; j++) rs -= int(prim[i*j] == 0), prim[i*j] = 1;
cout << rs;
return 0;
}