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;
}