Cod sursa(job #1812534)

Utilizator popicabogdanPopica Bogdan popicabogdan Data 22 noiembrie 2016 10:30:42
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 x)
{
    int i;
    if (x<2) return 0;
    if (x==2) return 1;
    if (x%2==0) return 0;
    for (i=3; i*i<=x; i=i+2)
        if (x%i==0) return 0;
    return 1;
 }

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


    fout<<cnt<<"\n";
    fout.close();


    return 0;
}