Cod sursa(job #2760914)

Utilizator amidazarFMI Mateescu Basil amidazar Data 29 iunie 2021 15:51:29
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("ciur.in");
ofstream g("ciur.out");

//Sieve of Eratosthenes:
//Documentation:  https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
//Problem:        https://infoarena.ro/problema/ciur
int main()
{
    //Intializations:
    int N; // the number greater than all primes.
    f >> N;
    int intPrimes[N+1];
    //char intPrimes[2000005];
    for(int i=0; i<=N; i++)
        intPrimes[i] = 1;
    intPrimes[0] = 0; intPrimes[1] = 0;

    //Sieve filling:
    //Compute number of primes.
    int numberOfPrimes = 0;
    for(int i=2; i<=N; i++){
        if (intPrimes[i] == 0){continue;}
        numberOfPrimes++;
        for(int j=i*i; j<=N; j=j+i)
            intPrimes[j] = 0;
    }

    //for(int i=2; i<=N; i++)
    //    numberOfPrimes += intPrimes[i];
    //    cout<<intPrimes[i]<<" ";
    g << numberOfPrimes;
    return 0;
}