Cod sursa(job #1812530)

Utilizator AndreiLunguLungu Andrei Sebastian AndreiLungu Data 22 noiembrie 2016 10:29:21
Problema Ciurul lui Eratosthenes Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>

using namespace std;
int Prim(int n)
{
    int i;
    if(n<2)return 0;
    if(n==2)return 1;
    if(n%2==0)return 0;
    for(i=3;i*i<=n;i=i+2)
        if(n%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<500.000)
    {
        cnt=0;
        for(i=2;i<=n;i++)
            cnt=cnt+Prim(i);

    }
    else if(n<1000000)
    {
        cnt=a;
        for(i=1000000;i<=n;i++)
            cnt=cnt+Prim(i);
    }
    else if(n<1500000)
    {
        cnt=b;
        for(i=1000000;i<=n;i++)
            cnt=cnt+ Prim(i);
    }
    else{cnt=c;
    for(i=1500000;i<=n;i++)
        cnt=cnt+Prim(i);
    }
    fout<<cnt;
    return 0;
}