Cod sursa(job #2901106)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 12 mai 2022 22:48:45
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>
#include <vector>

using namespace std;
FILE *fin, *fout;

vector <int> v;

#define NMAX 2000000

int cnt;

int main()
{
    fin = fopen("ciur.in", "r");
    fout = fopen("ciur.out", "w");

    int n;
    fscanf(fin, "%d", &n);

    v.reserve(NMAX + 5);

    v[0] = v[1] = 1;
    int i , j;
    for(i = 4; i <= NMAX; i += 2)
        v[i] = 1;

    for(i = 3; i * i <= NMAX; i += i)
        if(v[i] == 0)
            for(j = i * i; j <= NMAX; j = j + 2 * i)
                v[j] = 1;

    for(i = 2; i <= n; i++)
        if(v[i] == 0)
        cnt++;

    fprintf(fout , "%d" , cnt);

    fclose(fin);
    fclose(fout);
    return 0;
}