Cod sursa(job #767922)

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

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

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


    return 0;
}

int ciur ( int n )
{
    int i,j,nr=1,k=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;
}