Cod sursa(job #767925)

Utilizator bratualexBratu Alexandru bratualex Data 15 iulie 2012 14:12:05
Problema Ciurul lui Eratosthenes Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
#include <math.h>

using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int ciur ( int );
int a[649861];
int main()
{
    int n;
    fin>>n;
    fout<<ciur (n);

    //fout<<v[n+1]*v[n+1];


    return 0;
}

int ciur ( int n )
{
    int i,j,nr=1;
    //v[k++]=2;
    for (i=1;(i<<1)+1<=n;i++)
    {
        if (a[i]==0)
        {
            //v[k++]=2*i+1;
            nr++;
            for(j=i+i+i+1;(j<<1)+1<=n;j+=(i<<1)+1)
                a[j]=1;
        }

    }
    return nr;
}