Mai intai trebuie sa te autentifici.
Cod sursa(job #2099189)
Utilizator | Data | 4 ianuarie 2018 09:35:48 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
const int NMax = 2e6 + 50;
int ciur[NMax];
vector < int > primes;
void Erathos(int n) {
for(int i = 2; i <= n; ++i) {
if(ciur[i] == 0) {
ciur[i] = i;
primes.push_back(i);
}
for(int j = 0; j < (int)primes.size() && primes[j] <= ciur[i] && i * primes[j] <= n; ++j) {
ciur[i * primes[j]] = primes[j];
}
}
}
int main() {
int n;
fin >> n;
Erathos(n);
fout << (int)primes.size();
return 0;
}