Cod sursa(job #2524618)
| Utilizator | Data | 15 ianuarie 2020 22:22:30 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
char ap[2000010]; /* declaram vectorul de aparitii un char
pentru a incapea n atat de mare */
int ciur (int n) {
int nr_prime = 0;
for (int i = 2; i <= n; ++i)
if (ap[i] != 1) {
++nr_prime;
for (int j = i + i; j <= n; j += i)
ap[j] = 1;
}
return nr_prime;
}
int main() {
int n;
fin >> n;
for (int i = 2; i <= n; ++i)
ap[i] = 0; /* numerele inca nu au fost marcate */
fout << ciur(n);
}
