Cod sursa(job #1812537)

Utilizator victorteslaruVictor Teslaru victorteslaru Data 22 noiembrie 2016 10:31:44
Problema Ciurul lui Eratosthenes Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 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<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;
}