Cod sursa(job #1812526)

Utilizator AndreiLunguLungu Andrei Sebastian AndreiLungu Data 22 noiembrie 2016 10:27:59
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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{cnt=c;
    for(i=1500000;i<=n;i++)
        cnt=cnt+Prim(i);
    }
    fout<<cnt;
    return 0;
}