Cod sursa(job #2634704)

Utilizator irimia_alexIrimia Alex irimia_alex Data 12 iulie 2020 01:12:57
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
#define NMAX 2000005

using namespace std;

int v[NMAX/2] = { 0 };

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

    int n, nr = 1;
    fscanf(fin, "%i", &n);

    for (int i = 3;i * i <= n;i += 2) {
        if (v[i/2] == 0) {
            for (int j = i * i;j <= n;j += i)
                v[j/2] = 1;
        }
    }

    for (int i = 3;i <= n;i += 2)
        if (v[i/2] == 0)
            ++nr;
    
    fprintf(fout,"%i", nr);
    printf("%i", nr);
  
    return 0;
}