Cod sursa(job #1443303)

Utilizator PletoPletosu Cosmin-Andrei Pleto Data 27 mai 2015 16:28:14
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.68 kb
///Cred intru Unul Dumnezeu, Tatal Atottiitorul,
///Facatorul cerului si al pamantului, vazutelor tuturor si nevazutelor.
///Si intru Unul Domn Isus Hristos, Fiul lui Dumnezeu,
///Unul-Nascut, Carele din Tatal S-a nascut mai inainte de toti vecii.
///Lumina din Lumina,
///Dumnezeu adevarat din Dumnezeu adevarat, nascut, iara nu facut;
///Cel de o fiinta cu Tatal, prin Carele toate s-au facut;
///Carele pentru noi oamenii si pentru a noastra mantuire
///S-a pogorat din ceruri si S-a intrupat de la Duhul Sfant si din Maria Fecioara,
///Si S-a facut om;
///Si S-a rastignit pentru noi in zilele lui Pontiu Pilat si a patimit si S-a ingropat;
///Si a inviat a treia zi, dupa Scripturi;
///Si S-a inaltat la ceruri si sade de-a dreapta Tatalui;
///Si iarasi va sa vina cu slava, sa judece viii si mortii,
///A caruia imparatie nu va avea sfarsit.
///Si intru Duhul Sfant, Domnul de viata Facatorul,
///Carele de la Tatal purcede, Cela ce impreuna cu Tatal si cu Fiul este inchinat si slavit,
///Carele a grait prin prooroci.
///Intru Una, Sfanta, Soborniceasca si Apostoleasca Biserica;
///Marturisesc Un Botez, spre iertarea pacatelor;
///Astept invierea mortilor;
///Si viata veacului ce va sa vie.
///Amin!

#include <fstream>
#define nmax 2000005
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
int N,nr;
char prim[nmax];
int main()
{
    in>>N;
    for(int i=2;i<=N;i+=2) prim[i]=1;
    if(N>=2) nr=1;
    for(int i=3;i<=N;i+=2)
    {
        if(prim[i]==0)
        {
            ++nr;
            for(int j=i*i;j<=N;j+=i)
            {
                prim[j]=1;
            }
        }
    }
    out<<nr;
    in.close();out.close();return 0;
}