Cod sursa(job #2524618)

Utilizator RaresCosaAndrei-Rares Cosa RaresCosa 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);
}