Cod sursa(job #2634695)

Utilizator irimia_alexIrimia Alex irimia_alex Data 12 iulie 2020 01:00:45
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#include <vector>
#include <utility>
#include <queue>
#define NMAX 2000001

using namespace std;

int v[NMAX] = { 0 };

bool isPrime(int n) {
    for (int i = 2;i * i <= n;++i)
        if (n % i == 0)
            return false;
    return true;
}

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

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

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