Cod sursa(job #2729408)

Utilizator VladimirVanDijkBercovici Vlad-Stefan VladimirVanDijk Data 24 martie 2021 18:06:07
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;
int main()
{
    int sieve[2000002];
    long int n,totalprime;
    ifstream f;
    f.open("ciur.in");
    f>>n;
    totalprime = n-1;
    for(int i=0; i<=n; i++)
        sieve[i] = 0; //All numbers are prime to begin with
    f.close();
    for(int i=2; i<=n; i++)
        if(!sieve[i]) //The number we found is prime, so we can begin the sieve algorithm
            for(int j = 2*i; j <= n; j += i)
                if(!sieve[j]) //Found a non-prime number that is marked as a prime
                {
                    sieve[j] = 1;
                    totalprime = totalprime-1;
                }
    ofstream g;
    g.open("ciur.out");
    g<<totalprime;
    g.close();
    return 0;
}