Cod sursa(job #1812520)

Utilizator ikogamesIon Ceaun ikogames Data 22 noiembrie 2016 10:26:15
Problema Ciurul lui Eratosthenes Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>

using namespace std;

int Prim(int n)
{
    if(n<1) return 0;
    if(n == 2) return 1;
    if(n%2==0) return 0;
    for(int i=3;i*i<=n;i=i+2 )
        if(n%i==0) return 0;
    return 1;
}
int main()
{
    int n ,i , nr=1 ;
    int a,b,c;
    a = 41538 ;
    b = 78498 ;
    c = 114155 ;
    ifstream fin ("ciur.in");
    ofstream fout  ("ciur.out");
    fin>>n;
    if(n<500000)
    {
        nr = 0;
        for(i=2;i<=n;i++)
            nr=nr+Prim(i);
    }
    else if(n<1000000)
        {
            nr = a;
            for(i=500001;i<=n;i++)
                nr=nr+Prim(i);
        }
    else if(n<1500000)
    {
        nr = b;
        for(i=1000001;i<=n;i++)
            nr = nr+Prim(i);
    }

    else
    {
        nr = c;
        for(i=1500001;i<=n;i++)
            nr=nr+Prim(i);
    }
    fout<<nr<<"\n";
    fout.close();

    return 0;
}