Cod sursa(job #1550816)

Utilizator enacheionutEnache Ionut enacheionut Data 14 decembrie 2015 19:09:15
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

//marcam cu 1 nr prime si cu 0 pe cele neprime
int C[2000000];

int main()
{
    int N, nr_prime = 0;


    ifstream in("ciur.in");
    in>>N;
    in.close();

    //initial consideram toate nr prime
    for( int i=1; i<=N; i++ )
    {
        C[i] = 1;
    }

    for( int i=2; i<=N; i++ )
    {
        if( C[i] == 1 )
        {
            nr_prime++;
            //parcurgem multiplii lui i pana la N deoarece nu sunt nr prime deci le marcam cu 0
            for( int j=2; j<=N; j++ )
            {
                C[i*j] = 0;
            }
        }
    }

    ofstream out("ciur.out");
//    //parcurgem sirul si afisam nr ramase marcate cu 1 deci cele prime
//    for( int i=1; i<=N; i++ )
//    {
//        if( C[i] == 1 )
//        {
//            out<< i <<" ";
//        }
//    }

    out<<nr_prime;
    out.close();
    return 0;
}