Cod sursa(job #629652)

Utilizator VladberilaVladutz Vladberila Data 3 noiembrie 2011 16:59:21
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <cstring>
#define Nmax 1000005
using namespace std;
char v[Nmax];
long i,n,nr,j;
ifstream f("ciur.in");
ofstream g("ciur.out");
int main()
{
    f>>n;
    if(n>=2)
       nr=1;
    for(i=1;i<=n/2;i++)
       v[i]='1';
    for(i=1;((i<<1)+1)*((i<<1)+1)<=n;i++)
       for(j=i;((j<<1)+1)*((i<<1)+1)<=n;j++)
           v[((i<<1)+1)*((j<<1)+1)/2]='0';
    for(i=1;i<=n/2;i++)
       if(v[i]=='1')
          nr++;
    if(n%2==0)
       --nr;
    g<<nr;
    f.close();
    g.close();
    return 0;   
}